Browse Source

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

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

7
src/AST/ClassExtensions.cs

@ -51,7 +51,8 @@ namespace CppSharp.AST @@ -51,7 +51,8 @@ namespace CppSharp.AST
if (baseMethod != null)
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,
@ -71,11 +72,13 @@ namespace CppSharp.AST @@ -71,11 +72,13 @@ namespace CppSharp.AST
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 &&
property.Parameters.SequenceEqual(@override.Parameters,
ParameterTypeComparer.Instance)
select property).FirstOrDefault();
if (baseProperty != null)
return baseProperty;

Loading…
Cancel
Save