|
|
@ -116,8 +116,10 @@ namespace CppSharp.Passes |
|
|
|
{ |
|
|
|
{ |
|
|
|
var @class = method.Namespace as Class; |
|
|
|
var @class = method.Namespace as Class; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (method.IsVirtual) |
|
|
|
|
|
|
|
{ |
|
|
|
Class ignoredBase; |
|
|
|
Class ignoredBase; |
|
|
|
if (method.IsVirtual && HasIgnoredBaseClass(method, @class, out ignoredBase)) |
|
|
|
if (HasIgnoredBaseClass(method, @class, out ignoredBase)) |
|
|
|
{ |
|
|
|
{ |
|
|
|
Driver.Diagnostics.EmitMessage( |
|
|
|
Driver.Diagnostics.EmitMessage( |
|
|
|
"Virtual method '{0}' was ignored due to ignored base '{1}'", |
|
|
|
"Virtual method '{0}' was ignored due to ignored base '{1}'", |
|
|
@ -126,6 +128,22 @@ namespace CppSharp.Passes |
|
|
|
method.ExplicityIgnored = true; |
|
|
|
method.ExplicityIgnored = true; |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (method.IsOverride) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
var baseOverride = @class.GetRootBaseMethod(method); |
|
|
|
|
|
|
|
if (baseOverride != null && baseOverride.Ignore) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
Driver.Diagnostics.EmitMessage( |
|
|
|
|
|
|
|
"Virtual method '{0}' was ignored due to ignored override '{1}'", |
|
|
|
|
|
|
|
method.QualifiedOriginalName, baseOverride.Name); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
method.ExplicityIgnored = true; |
|
|
|
|
|
|
|
return false; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
return true; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|