public TypedAssignExpression(Expression target, Expression expression) : base(target, expression) { this.ElementType = TypedTransformer.GetElementType(target); //TODO: do we need to check the assigning type? if so how can we do it without the actual type handles? //Helper.AreEqual(this.ElementType, TypedTransformer.GetElementType(expression), "'expression' argument must have the same element type as 'target' argument."); }
public TypedVariableReferenceExpression(Mono.Cecil.Cil.VariableReference variable) : base(variable) { var type = Type.GetType(variable.VariableType.FullName, true); this.ElementType = TypedTransformer.GetElementType(type); }
public TypedArgumentReferenceExpression(ParameterReference parameter) : base(parameter) { this.ElementType = TypedTransformer.GetElementType(parameter.ParameterType); }
public TypedUnaryExpression(UnaryOperator @operator, Expression operand) : base(@operator, operand) { this.ElementType = TypedTransformer.GetElementType(operand); }
public TypedBinaryExpression(BinaryOperator @operator, Expression left, Expression right) : base(@operator, left, right) { this.ElementType = TypedTransformer.GetElementType(left); Helper.AreEqual(this.ElementType, TypedTransformer.GetElementType(right), "left and right expressions do not have the same ElementType"); }
public TypedLiteralExpression(object value) : base(value) { this.ElementType = TypedTransformer.GetElementType(value); }