예제 #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
파일: Operand.cs 프로젝트: jmptrader/Creek
 internal override void EmitAddressOf(CodeGen g)
 {
     op.EmitAddressOf(g);
 }
예제 #11
0
파일: Operand.cs 프로젝트: jmptrader/Creek
 internal virtual void EmitAddressOf(CodeGen g)
 {
     throw new InvalidOperationException(string.Format(null, Properties.Messages.ErrOperandNotReferencible, GetType()));
 }
예제 #12
0
파일: Operand.cs 프로젝트: jmptrader/Creek
 internal virtual void EmitSet(CodeGen g, Operand value, bool allowExplicitConversion)
 {
     throw new InvalidOperationException(string.Format(null, Properties.Messages.ErrOperandNotWritable, GetType()));
 }