Ejemplo n.º 1
0
 public override void Emit(IlCompilerContext ctx)
 {
     _expression.Emit(ctx);
     ctx.StackDepth--;
     ctx.Il.Emit(OpCodes.Castclass, _type);
     ctx.StackDepth++;
 }
Ejemplo n.º 2
0
 public override void Emit(IlCompilerContext ctx)
 {
     _target.Emit(ctx);
     _value.Emit(ctx);
     ctx.Il.Emit(OpCodes.Stfld, _field);
     ctx.StackDepth -= 2;
 }
Ejemplo n.º 3
0
        public override void Emit(IlCompilerContext ctx)
        {
            var field = ctx.SelfType.GetFields(BindingFlagsEx.All)[Index];

            ctx.Il.Emit(OpCodes.Ldarg_0);
            ctx.Il.Emit(OpCodes.Ldfld, field);
            ctx.StackDepth++;
        }
Ejemplo n.º 4
0
        public override void Emit(IlCompilerContext ctx)
        {
            var ctor = _type.GetConstructor(new Type[] {});

            // ReSharper disable once AssignNullToNotNullAttribute
            ctx.Il.Emit(OpCodes.Newobj, ctor);
            ctx.StackDepth++;
        }
Ejemplo n.º 5
0
 public override void Emit(IlCompilerContext ctx)
 {
     foreach (var arg in _args)
     {
         arg.Emit(ctx);
         ctx.StackDepth--;
     }
     ctx.Il.EmitCall(OpCodes.Call, _method, null);
     if (_method.ReturnType != typeof(void))
     {
         ctx.StackDepth++;
     }
 }
Ejemplo n.º 6
0
 public override void Emit(IlCompilerContext ctx)
 {
     _target.Emit(ctx);
     ctx.StackDepth--;
     foreach (var arg in _args)
     {
         arg.Emit(ctx);
         ctx.StackDepth--;
     }
     if (_method.IsVirtual)
     {
         ctx.Il.EmitCall(OpCodes.Callvirt, _method, null);
     }
     else
     {
         ctx.Il.EmitCall(OpCodes.Call, _method, null);
     }
     if (_method.ReturnType != typeof(void))
     {
         ctx.StackDepth++;
     }
 }
Ejemplo n.º 7
0
 public override void Emit(IlCompilerContext ctx)
 {
     ctx.Il.Emit(_value ? OpCodes.Ldc_I4_1 : OpCodes.Ldc_I4_0);
     ctx.StackDepth++;
 }
Ejemplo n.º 8
0
 public override void Emit(IlCompilerContext ctx)
 {
     _expression.Emit(ctx);
     ctx.Il.Emit(OpCodes.Unbox_Any, _type);
 }
Ejemplo n.º 9
0
 public override void Emit(IlCompilerContext ctx)
 {
     ctx.Il.Emit(OpCodes.Ldloc, VariableIndex);
     ctx.StackDepth++;
 }
Ejemplo n.º 10
0
 public override void Emit(IlCompilerContext ctx)
 {
     ctx.Il.Emit(OpCodes.Ldarg, ParameterIndex);
     ctx.StackDepth++;
 }
Ejemplo n.º 11
0
 public abstract void Emit(IlCompilerContext ctx);