Boo.Lang.Compiler.Ast.TypeReference.Lift C# (CSharp) Method

Lift() public static method

public static Lift ( Expression e ) : TypeReference
e Expression
return TypeReference
        public static TypeReference Lift(Expression e)
        {
            switch (e.NodeType)
            {
                case NodeType.TypeofExpression:
                    return Lift((TypeofExpression) e);
                case NodeType.GenericReferenceExpression:
                    return Lift((GenericReferenceExpression) e);
                case Ast.NodeType.ReferenceExpression:
                    return Lift((ReferenceExpression) e);
                case Ast.NodeType.MemberReferenceExpression:
                    return Lift((MemberReferenceExpression) e);
            }
            throw new NotImplementedException(e.ToCodeString());
        }

Same methods

TypeReference::Lift ( GenericReferenceExpression e ) : TypeReference
TypeReference::Lift ( ReferenceExpression e ) : TypeReference
TypeReference::Lift ( System type ) : TypeReference
TypeReference::Lift ( Boo.Lang.Compiler.Ast.TypeDefinition node ) : TypeReference
TypeReference::Lift ( TypeReference typeRef ) : TypeReference
TypeReference::Lift ( Boo.Lang.Compiler.Ast.TypeofExpression e ) : TypeReference
TypeReference::Lift ( string name ) : TypeReference

Usage Example

Beispiel #1
0
		private static Expression LiftGenericType(Type type)
		{
			var genericRef = new GenericReferenceExpression { Target = ReferenceExpressionFor(type) };
			foreach (var arg in type.GetGenericArguments())
				genericRef.GenericArguments.Add(TypeReference.Lift(arg));
			return genericRef;
		}