Browse Source

Make sure we skip ignored overloads when checking for ambiguous overloads.

pull/1/head
triton 13 years ago
parent
commit
e0a6181287
  1. 9
      src/Generator/Passes/CheckAmbiguousOverloads.cs

9
src/Generator/Passes/CheckAmbiguousOverloads.cs

@ -98,6 +98,9 @@ namespace CppSharp.Passes
if (visited.Contains(function)) if (visited.Contains(function))
return false; return false;
if (function.Ignore)
return false;
var overloads = AST.Utils.GetFunctionOverloads(function, currentClass); var overloads = AST.Utils.GetFunctionOverloads(function, currentClass);
var signatures = overloads.Select(fn => new OverloadSignature(fn)).ToList(); var signatures = overloads.Select(fn => new OverloadSignature(fn)).ToList();
@ -105,8 +108,14 @@ namespace CppSharp.Passes
{ {
visited.Add(sig1.Function); visited.Add(sig1.Function);
if (sig1.Function.Ignore)
continue;
foreach (var sig2 in signatures) foreach (var sig2 in signatures)
{ {
if (sig2.Function.Ignore)
continue;
if (!OverloadSignature.IsAmbiguous(sig1, sig2, currentClass)) if (!OverloadSignature.IsAmbiguous(sig1, sig2, currentClass))
continue; continue;

Loading…
Cancel
Save