Browse Source

Improve get base method and property methods to work with generalized declarations.

pull/990/merge
Joao Matos 9 years ago
parent
commit
39749ee0b7
  1. 7
      src/AST/ClassExtensions.cs

7
src/AST/ClassExtensions.cs

@ -51,7 +51,8 @@ namespace CppSharp.AST
if (baseMethod != null) if (baseMethod != null)
return baseMethod; return baseMethod;
return baseClass.Methods.FirstOrDefault(@override.CanOverride); var methods = baseClass.Methods.Concat(baseClass.Declarations.OfType<Method>());
return methods.FirstOrDefault(@override.CanOverride);
} }
public static Property GetBaseProperty(this Class @class, Property @override, public static Property GetBaseProperty(this Class @class, Property @override,
@ -71,11 +72,13 @@ namespace CppSharp.AST
return baseProperty; return baseProperty;
} }
baseProperty = (from property in @base.Class.Properties var properties = @base.Class.Properties.Concat(@base.Class.Declarations.OfType<Property>());
baseProperty = (from property in properties
where property.OriginalName == @override.OriginalName && where property.OriginalName == @override.OriginalName &&
property.Parameters.SequenceEqual(@override.Parameters, property.Parameters.SequenceEqual(@override.Parameters,
ParameterTypeComparer.Instance) ParameterTypeComparer.Instance)
select property).FirstOrDefault(); select property).FirstOrDefault();
if (baseProperty != null) if (baseProperty != null)
return baseProperty; return baseProperty;

Loading…
Cancel
Save