示例#1
0
 public override void Emit(CodeGen g, Type from, Type to)
 {
     g.EmitConvHelper(Type.GetTypeCode(to));
 }
示例#2
0
 public abstract void Emit(CodeGen g, Type from, Type to);
示例#3
0
 public override void Emit(CodeGen g, Type from, Type to)
 {
 }
示例#4
0
 public override void Emit(CodeGen g, Type from, Type to)
 {
     throw new AmbiguousMatchException(string.Format(null, Properties.Messages.ErrAmbiguousConversion, from.FullName, to.FullName));
 }
示例#5
0
 public override void Emit(CodeGen g, Type from, Type to)
 {
     before.Emit(g, from, fromType);
     g.IL.Emit(OpCodes.Call, (MethodInfo)method.Member);
     after.Emit(g, toType, to);
 }
示例#6
0
 public override void Emit(CodeGen g, Type from, Type to)
 {
     g.IL.Emit(OpCodes.Castclass, to);
 }
示例#7
0
 public override void Emit(CodeGen g, Type from, Type to)
 {
     throw new InvalidCastException(string.Format(null, Properties.Messages.ErrInvalidConversion, from == null ? "<null>" : from.FullName, to.FullName));
 }
示例#8
0
 public override void Emit(CodeGen g, Type from, Type to)
 {
     g.IL.Emit(OpCodes.Unbox_Any, to);
 }
示例#9
0
 public override void Emit(CodeGen g, Type from, Type to)
 {
     g.IL.Emit(OpCodes.Box, from);
 }
示例#10
0
 internal override void EmitAddressOf(CodeGen g)
 {
     op.EmitAddressOf(g);
 }
示例#11
0
 internal virtual void EmitAddressOf(CodeGen g)
 {
     throw new InvalidOperationException(string.Format(null, Properties.Messages.ErrOperandNotReferencible, GetType()));
 }
示例#12
0
 internal virtual void EmitSet(CodeGen g, Operand value, bool allowExplicitConversion)
 {
     throw new InvalidOperationException(string.Format(null, Properties.Messages.ErrOperandNotWritable, GetType()));
 }