Browse Source

Fixed GetFunctionOverloads to work for class operators too.

pull/140/head
triton 12 years ago
parent
commit
ec8d33d3cb
  1. 4
      src/AST/Class.cs
  2. 7
      src/AST/Namespace.cs

4
src/AST/Class.cs

@ -191,8 +191,8 @@ namespace CppSharp.AST @@ -191,8 +191,8 @@ namespace CppSharp.AST
public override IEnumerable<Function> GetFunctionOverloads(Function function)
{
if (function.OperatorKind == CXXOperatorKind.Conversion)
return Methods.Where(fn => fn.OperatorKind == CXXOperatorKind.Conversion);
if (function.IsOperator)
return FindOperator(function.OperatorKind);
return Methods.Where(method => method.Name == function.Name);
}

7
src/AST/Namespace.cs

@ -266,10 +266,15 @@ namespace CppSharp.AST @@ -266,10 +266,15 @@ namespace CppSharp.AST
return Enums.Find(e => e.ItemsByName.ContainsKey(name));
}
public IEnumerable<Method> FindOperator(CXXOperatorKind kind)
{
return Functions.Where(fn => fn.OperatorKind == function.OperatorKind);
}
public virtual IEnumerable<Function> GetFunctionOverloads(Function function)
{
if (function.IsOperator)
return Functions.Where(fn => fn.OperatorKind == function.OperatorKind);
return FindOperator(function.OperatorKind);
return Functions.Where(fn => fn.Name == function.Name);
}

Loading…
Cancel
Save