diff --git a/src/Generator/Library.cs b/src/Generator/Library.cs index 26ba9281..2edca4c0 100644 --- a/src/Generator/Library.cs +++ b/src/Generator/Library.cs @@ -253,14 +253,34 @@ namespace CppSharp /// first parameter has index 1 public static void SetMethodParameterUsage(this ASTContext context, string className, string methodName, int parameterIndex, ParameterUsage usage) + { + SetMethodParameterUsage(context, className, methodName, -1, parameterIndex, usage); + } + + /// + /// Sets the parameter usage for a method parameter. + /// + /// first parameter has index 1 + public static void SetMethodParameterUsage(this ASTContext context, + string className, string methodName, int parameterCount, int parameterIndex, + ParameterUsage usage) { if (parameterIndex <= 0 ) throw new ArgumentException("parameterIndex"); var @class = context.FindCompleteClass(className); - var method = @class.Methods.Find(m => m.Name == methodName); + + Method method; + + if (parameterCount >= 0) + method = @class.Methods.Find(m => m.Name == methodName + && m.Parameters.Count == parameterCount); + else + method = @class.Methods.Find(m => m.Name == methodName); + if (method == null) throw new ArgumentException("methodName"); + if (method.Parameters.Count < parameterIndex) throw new ArgumentException("parameterIndex");