Browse Source

Improved Class.GetOverloads method to work with functions as generalized declarations.

pull/873/head
Joao Matos 8 years ago
parent
commit
86a2a171cc
  1. 10
      src/AST/Class.cs
  2. 1
      src/AST/Namespace.cs

10
src/AST/Class.cs

@ -280,11 +280,13 @@ namespace CppSharp.AST @@ -280,11 +280,13 @@ namespace CppSharp.AST
if (function.IsOperator)
return Methods.Where(fn => fn.OperatorKind == function.OperatorKind);
var methods = Methods.Where(m => m.Name == function.Name).ToList();
if (methods.Count != 0)
return methods;
var overloads = Methods.Where(m => m.Name == function.Name)
.Union(Declarations.Where(d => d is Function && d.Name == function.Name))
.Cast<Function>();
return base.GetOverloads(function);
overloads = overloads.Union(base.GetOverloads(function));
return overloads;
}
public Method FindMethod(string name)

1
src/AST/Namespace.cs

@ -404,6 +404,7 @@ namespace CppSharp.AST @@ -404,6 +404,7 @@ namespace CppSharp.AST
{
if (function.IsOperator)
return FindOperator(function.OperatorKind);
return Functions.Where(fn => fn.Name == function.Name);
}

Loading…
Cancel
Save