コード例 #1
0
 public Assignment Assign(Operand value, bool allowExplicitConversion)
 {
     return(OperandExtensions.SetLeakedState(new Assignment(this, value, allowExplicitConversion), true));
 }
コード例 #2
0
 public Operand LogicalAnd(Operand other)
 {
     return(OperandExtensions.SetLeakedState(Conditional(other, false), true));
 }
コード例 #3
0
 public ContextualOperand Invoke(MethodInfo method, ITypeMapper typeMapper, params Operand[] args)
 {
     return(OperandExtensions.SetLeakedState(new ContextualOperand(new Invocation(typeMapper.TypeInfo.FindMethod(method), this, args), typeMapper), true));
 }
コード例 #4
0
 protected override void ResetLeakedStateRecursively()
 {
     base.ResetLeakedStateRecursively();
     OperandExtensions.SetLeakedState(_op, false);
 }
コード例 #5
0
 public Operand Conditional(Operand ifTrue, Operand ifFalse)
 {
     return(OperandExtensions.SetLeakedState(new Conditional(this, ifTrue, ifFalse), true));
 }
コード例 #6
0
 public Operand Is(Type type)
 {
     return(OperandExtensions.SetLeakedState(new IsInstanceOf(this, type), true));
 }
コード例 #7
0
 public static Operand operator >>(Operand left, int right)
 {
     return(OperandExtensions.SetLeakedState(new OverloadableOperation(Operator.RightShift, left, right), true));
 }
コード例 #8
0
 public Operand PreDecrement()
 {
     return(OperandExtensions.SetLeakedState(new PrefixOperation(Operator.Decrement, this), true));
 }
コード例 #9
0
 public static Operand operator ^(Operand left, Operand right)
 {
     return(OperandExtensions.SetLeakedState(new OverloadableOperation(Operator.Xor, left, right), true));
 }
コード例 #10
0
 public Operand Xor(Operand value)
 {
     return(OperandExtensions.SetLeakedState(new OverloadableOperation(Operator.Xor, this, value), true));
 }
コード例 #11
0
 public Operand BitwiseAnd(Operand value)
 {
     return(OperandExtensions.SetLeakedState(new OverloadableOperation(Operator.And, this, value), true));
 }
コード例 #12
0
 public Operand Multiply(Operand value)
 {
     return(OperandExtensions.SetLeakedState(new OverloadableOperation(Operator.Multiply, this, value), true));
 }
コード例 #13
0
 public Operand Subtract(Operand value)
 {
     return(OperandExtensions.SetLeakedState(new OverloadableOperation(Operator.Subtract, this, value), true));
 }
コード例 #14
0
 public Operand LogicalOr(Operand other)
 {
     return(OperandExtensions.SetLeakedState(Conditional(true, other), true));
 }
コード例 #15
0
 public Operand RightShift(Operand value)
 {
     return(OperandExtensions.SetLeakedState(new OverloadableOperation(Operator.RightShift, this, value), true));
 }
コード例 #16
0
 public Operand PostIncrement()
 {
     return(OperandExtensions.SetLeakedState(new PostfixOperation(Operator.Increment, this), true));
 }
コード例 #17
0
 public Operand Negate()
 {
     return(OperandExtensions.SetLeakedState(new OverloadableOperation(Operator.Minus, this), true));
 }
コード例 #18
0
 public Operand IsFalse()
 {
     return(OperandExtensions.SetLeakedState(new OverloadableOperation(Operator.False, this), true));
 }
コード例 #19
0
 public Operand LogicalNot()
 {
     return(OperandExtensions.SetLeakedState(new OverloadableOperation(Operator.LogicalNot, this), true));
 }
コード例 #20
0
 public Operand As(Type type)
 {
     return(OperandExtensions.SetLeakedState(new SafeCast(this, type), true));
 }
コード例 #21
0
 public static Operand operator ~(Operand op)
 {
     return(OperandExtensions.SetLeakedState(new OverloadableOperation(Operator.Not, op), true));
 }
コード例 #22
0
 public ContextualOperand Invoke(string name, ITypeMapper typeMapper, params Operand[] args)
 {
     return(OperandExtensions.SetLeakedState(new ContextualOperand(new Invocation(typeMapper.TypeInfo.FindMethod(GetReturnType(typeMapper), name, args, IsStaticTarget), this, args), typeMapper), true));
 }
コード例 #23
0
 public Operand OnesComplement()
 {
     return(OperandExtensions.SetLeakedState(new OverloadableOperation(Operator.Not, this), true));
 }
コード例 #24
0
 public Operand LongArrayLength()
 {
     return(OperandExtensions.SetLeakedState(new ArrayLength(this, true), true));
 }
コード例 #25
0
 public Operand Pow2()
 {
     return(OperandExtensions.SetLeakedState(new SimpleOperation(this, OpCodes.Dup, OpCodes.Mul), true));
 }
コード例 #26
0
 protected internal override void EmitAddressOf(CodeGen g)
 {
     OperandExtensions.SetLeakedState(this, false);
     _op.EmitAddressOf(g);
 }
コード例 #27
0
 protected internal virtual void AssignmentHint(Operand op)
 {
     OperandExtensions.SetLeakedState(this, false);
 }