public Method ConvertToIrisMethod() { IrisType returnType = _signature.ReturnType; Variable[] parameters = GetParameters(); if (IsStatic) { return(CreateMethodHelper(returnType, parameters)); } else { // Iris can call instance methods by passing "this" as parameter 0 Variable[] staticParams = new Variable[parameters.Length + 1]; IrisType instanceType = DeclaringType.ConvertToIrisType(); if (instanceType == IrisType.Integer || instanceType == IrisType.Boolean) { instanceType = instanceType.MakeByRefType(); } staticParams[0] = new Variable(instanceType, "this"); Array.Copy(parameters, 0, staticParams, 1, parameters.Length); return(CreateMethodHelper(returnType, staticParams)); } }