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
public override IEnumerable<Function> GetFunctionOverloads(Function function) public override IEnumerable<Function> GetFunctionOverloads(Function function)
{ {
if (function.OperatorKind == CXXOperatorKind.Conversion) if (function.IsOperator)
return Methods.Where(fn => fn.OperatorKind == CXXOperatorKind.Conversion); return FindOperator(function.OperatorKind);
return Methods.Where(method => method.Name == function.Name); return Methods.Where(method => method.Name == function.Name);
} }

7
src/AST/Namespace.cs

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

Loading…
Cancel
Save