protected override Expr VisitLoadArg(ExprLoadArg e) { this.Emit(e, () => { int index = e.Index; switch (index) { case 0: return(this.il.Create(OpCodes.Ldarg_0)); case 1: return(this.il.Create(OpCodes.Ldarg_1)); case 2: return(this.il.Create(OpCodes.Ldarg_2)); case 3: return(this.il.Create(OpCodes.Ldarg_3)); default: if (e.Index <= 255) { return(this.il.Create(OpCodes.Ldarg_S, (byte)index)); } else { return(this.il.Create(OpCodes.Ldarg, index)); } } }); return(e); }
protected override Expr VisitLoadArg(ExprLoadArg e) { this.Emit(e, () => { int index = e.Index; switch (index) { case 0: return(this.il.Create(OpCodes.Ldarg_0)); case 1: return(this.il.Create(OpCodes.Ldarg_1)); case 2: return(this.il.Create(OpCodes.Ldarg_2)); case 3: return(this.il.Create(OpCodes.Ldarg_3)); default: if (e.Index <= 255) { return(this.il.Create(OpCodes.Ldarg_S, (byte)index)); } else { return(this.il.Create(OpCodes.Ldarg, index)); } } // Required due to bug in compiler throw new NotSupportedException(); }); return(e); }
protected virtual Expr VisitLoadArg (ExprLoadArg e) { return e; }