case FlowControl.Call: {
var method = (IMethodSignature) instruction.operand;
stack_size -= (method.HasParameters ? method.Parameters.Count : 0)
- + (method.HasThis && instruction.opcode.Code != Code.Newobj ? 1 : 0);
+ + (method.HasImplicitThis () && instruction.opcode.Code != Code.Newobj ? 1 : 0);
stack_size += (method.ReturnType.etype == ElementType.Void ? 0 : 1)
+ (method.HasThis && instruction.opcode.Code == Code.Newobj ? 1 : 0);
break;
static partial class Mixin {
+ public static bool HasImplicitThis (this IMethodSignature self)
+ {
+ return self.HasThis && !self.ExplicitThis;
+ }
+
public static void MethodSignatureFullName (this IMethodSignature self, StringBuilder builder)
{
builder.Append ("(");