Browse Source

Fixed a bug in the getting of the root base method: the bases after the first one were ignored.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
pull/68/head
Dimitar Dobrev 12 years ago
parent
commit
5e9de92b78
  1. 12
      src/AST/Class.cs

12
src/AST/Class.cs

@ -215,14 +215,15 @@ namespace CppSharp.AST @@ -215,14 +215,15 @@ namespace CppSharp.AST
method.Parameters.SequenceEqual(@override.Parameters,
new ParameterTypeComparer())
select method).FirstOrDefault()
let rootBaseMethod = @base.Class.GetRootBaseMethod(@override)
select rootBaseMethod ?? baseMethod).FirstOrDefault();
let rootBaseMethod = @base.Class.GetRootBaseMethod(@override) ?? baseMethod
where rootBaseMethod != null
select rootBaseMethod).FirstOrDefault();
}
public Property GetRootBaseProperty(Property @override)
{
return (from @base in Bases
let baseMethod = (
let baseProperty = (
from property in @base.Class.Properties
where
property.Name == @override.Name &&
@ -230,8 +231,9 @@ namespace CppSharp.AST @@ -230,8 +231,9 @@ namespace CppSharp.AST
property.Parameters.SequenceEqual(@override.Parameters,
new ParameterTypeComparer())
select property).FirstOrDefault()
let rootBaseMethod = @base.Class.GetRootBaseProperty(@override)
select rootBaseMethod ?? baseMethod).FirstOrDefault();
let rootBaseProperty = @base.Class.GetRootBaseProperty(@override) ?? baseProperty
where rootBaseProperty != null
select rootBaseProperty).FirstOrDefault();
}
public override T Visit<T>(IDeclVisitor<T> visitor)

Loading…
Cancel
Save