public override Expression CloneExpressionOnly() { TypeReferenceExpression result = new TypeReferenceExpression(Type, null); return(result); }
public override void VisitTypeReferenceExpression(TypeReferenceExpression node) { WriteReferenceAndNamespaceIfInCollision(node.Type); }
public override Expression Clone() { TypeReferenceExpression result = new TypeReferenceExpression(Type, this.instructions); return(result); }
public virtual void VisitTypeReferenceExpression(TypeReferenceExpression node) { }
private Expression GenerateInvokeMemeberExpression(CallSiteInfo callSiteInfo, IList<Expression> arguments, IEnumerable<Instruction> instructions) { if (arguments.Count < 1) { throw new Exception("Invalid number of arguments for invoke expression."); } Expression target; TypeReference typeRef; if (arguments[0].CodeNodeType == CodeNodeType.MethodInvocationExpression && (arguments[0] as MethodInvocationExpression).IsTypeOfExpression(out typeRef)) { target = new TypeReferenceExpression(typeRef, arguments[0].UnderlyingSameMethodInstructions); } else { target = arguments[0]; } DynamicMemberReferenceExpression dynamicMemberReferenceExpression = new DynamicMemberReferenceExpression(target, callSiteInfo.MemberName, objectTypeRef, instructions, GetAllButFirst(arguments), callSiteInfo.GenericTypeArguments); return dynamicMemberReferenceExpression; }
public override Expression CloneExpressionOnly() { TypeReferenceExpression result = new TypeReferenceExpression(Type, null); return result; }
public override Expression Clone() { TypeReferenceExpression result = new TypeReferenceExpression(Type, this.instructions); return result; }