From 5e9de92b7827e4236eec97597e653907048b44ed Mon Sep 17 00:00:00 2001 From: Dimitar Dobrev Date: Thu, 19 Sep 2013 15:29:50 +0300 Subject: [PATCH] Fixed a bug in the getting of the root base method: the bases after the first one were ignored. Signed-off-by: Dimitar Dobrev --- src/AST/Class.cs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/AST/Class.cs b/src/AST/Class.cs index 09491034..4b040991 100644 --- a/src/AST/Class.cs +++ b/src/AST/Class.cs @@ -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 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(IDeclVisitor visitor)