Show / Hide Table of Contents

Class StructuralTypeSubstitutionExpressionVisitor

Visitor to rewrite the expression nodes whose type is a structural type.

Inheritance
System.Object
ScopedExpressionVisitorBase
ScopedExpressionVisitor<System.Linq.Expressions.ParameterExpression>
ExpressionVisitorWithReflection
TypeSubstitutionExpressionVisitor
StructuralTypeSubstitutionExpressionVisitor
Inherited Members
TypeSubstitutionExpressionVisitor.Apply(Expression)
TypeSubstitutionExpressionVisitor.VisitMember(MemberInfo)
TypeSubstitutionExpressionVisitor.VisitConstructor(ConstructorInfo)
TypeSubstitutionExpressionVisitor.VisitProperty(PropertyInfo)
TypeSubstitutionExpressionVisitor.VisitField(FieldInfo)
TypeSubstitutionExpressionVisitor.VisitMethod(MethodInfo)
TypeSubstitutionExpressionVisitor.VisitDynamic(DynamicExpression)
TypeSubstitutionExpressionVisitor.VisitType(Type)
TypeSubstitutionExpressionVisitor.ConvertExpression(Expression, Expression, Type)
TypeSubstitutionExpressionVisitor.ResolveConstructor(ConstructorInfo, Type, Type[])
TypeSubstitutionExpressionVisitor.FailResolveConstructor(ConstructorInfo, Type, Type[])
TypeSubstitutionExpressionVisitor.ResolveProperty(PropertyInfo, Type, Type, Type[])
TypeSubstitutionExpressionVisitor.FailResolveProperty(PropertyInfo, Type, Type, Type[])
TypeSubstitutionExpressionVisitor.ResolveField(FieldInfo, Type, Type)
TypeSubstitutionExpressionVisitor.FailResolveField(FieldInfo, Type, Type)
TypeSubstitutionExpressionVisitor.ResolveMethod(MethodInfo, Type, Type[], Type[], Type)
TypeSubstitutionExpressionVisitor.FailResolveMethod(MethodInfo, Type, Type[], Type[], Type)
TypeSubstitutionExpressionVisitor.ResolveType(Type)
TypeSubstitutionExpressionVisitor.Visit(Expression)
TypeSubstitutionExpressionVisitor.MakeConstant(Object, Type)
ExpressionVisitorWithReflection.VisitBinary(BinaryExpression)
ExpressionVisitorWithReflection.MakeBinary(ExpressionType, Expression, Expression, Boolean, MethodInfo, LambdaExpression)
ExpressionVisitorWithReflection.VisitBlockCore(BlockExpression)
ExpressionVisitorWithReflection.MakeBlock(Type, IEnumerable<ParameterExpression>, IEnumerable<Expression>)
ExpressionVisitorWithReflection.VisitCatchBlockCore(CatchBlock)
ExpressionVisitorWithReflection.MakeCatchBlock(Type, ParameterExpression, Expression, Expression)
ExpressionVisitorWithReflection.VisitConditional(ConditionalExpression)
ExpressionVisitorWithReflection.MakeConditional(Expression, Expression, Expression, Type)
ExpressionVisitorWithReflection.VisitConstant(ConstantExpression)
ExpressionVisitorWithReflection.VisitDefault(DefaultExpression)
ExpressionVisitorWithReflection.MakeDefault(Type)
ExpressionVisitorWithReflection.MakeDynamic(CallSiteBinder, Type, IEnumerable<Expression>)
ExpressionVisitorWithReflection.VisitElementInit(ElementInit)
ExpressionVisitorWithReflection.MakeElementInit(MethodInfo, IEnumerable<Expression>)
ExpressionVisitorWithReflection.VisitGoto(GotoExpression)
ExpressionVisitorWithReflection.MakeGoto(GotoExpressionKind, LabelTarget, Expression, Type)
ExpressionVisitorWithReflection.VisitIndex(IndexExpression)
ExpressionVisitorWithReflection.MakeIndex(Expression, PropertyInfo, IEnumerable<Expression>)
ExpressionVisitorWithReflection.VisitInvocation(InvocationExpression)
ExpressionVisitorWithReflection.MakeInvocation(Expression, IEnumerable<Expression>)
ExpressionVisitorWithReflection.VisitLabel(LabelExpression)
ExpressionVisitorWithReflection.MakeLabel(LabelTarget, Expression)
ExpressionVisitorWithReflection.VisitLabelTarget(LabelTarget)
ExpressionVisitorWithReflection.MakeLabelTarget(Type, String)
ExpressionVisitorWithReflection.VisitLambdaCore<T>(Expression<T>)
ExpressionVisitorWithReflection.MakeLambda(Type, Expression, String, Boolean, IEnumerable<ParameterExpression>)
ExpressionVisitorWithReflection.VisitListInit(ListInitExpression)
ExpressionVisitorWithReflection.MakeListInit(NewExpression, IEnumerable<ElementInit>)
ExpressionVisitorWithReflection.VisitLoop(LoopExpression)
ExpressionVisitorWithReflection.MakeLoop(Expression, LabelTarget, LabelTarget)
ExpressionVisitorWithReflection.VisitMember(MemberExpression)
ExpressionVisitorWithReflection.MakeMember(Expression, MemberInfo)
ExpressionVisitorWithReflection.VisitMemberAssignment(MemberAssignment)
ExpressionVisitorWithReflection.MakeMemberAssignment(MemberInfo, Expression)
ExpressionVisitorWithReflection.VisitMemberInit(MemberInitExpression)
ExpressionVisitorWithReflection.MakeMemberInit(NewExpression, IEnumerable<MemberBinding>)
ExpressionVisitorWithReflection.VisitMemberListBinding(MemberListBinding)
ExpressionVisitorWithReflection.MakeMemberListBinding(MemberInfo, IEnumerable<ElementInit>)
ExpressionVisitorWithReflection.VisitMemberMemberBinding(MemberMemberBinding)
ExpressionVisitorWithReflection.MakeMemberMemberBinding(MemberInfo, IEnumerable<MemberBinding>)
ExpressionVisitorWithReflection.VisitMethodCall(MethodCallExpression)
ExpressionVisitorWithReflection.MakeMethodCall(Expression, MethodInfo, IEnumerable<Expression>)
ExpressionVisitorWithReflection.VisitNew(NewExpression)
ExpressionVisitorWithReflection.MakeNew(ConstructorInfo, IEnumerable<Expression>, IEnumerable<MemberInfo>)
ExpressionVisitorWithReflection.MakeNew(Type)
ExpressionVisitorWithReflection.VisitNewArray(NewArrayExpression)
ExpressionVisitorWithReflection.MakeNewArray(ExpressionType, Type, IEnumerable<Expression>)
ExpressionVisitorWithReflection.VisitParameter(ParameterExpression)
ExpressionVisitorWithReflection.GetState(ParameterExpression)
ExpressionVisitorWithReflection.VisitRuntimeVariables(RuntimeVariablesExpression)
ExpressionVisitorWithReflection.MakeRuntimeVariables(IEnumerable<ParameterExpression>)
ExpressionVisitorWithReflection.VisitSwitch(SwitchExpression)
ExpressionVisitorWithReflection.MakeSwitch(Type, Expression, Expression, MethodInfo, IEnumerable<SwitchCase>)
ExpressionVisitorWithReflection.VisitSwitchCase(SwitchCase)
ExpressionVisitorWithReflection.MakeSwitchCase(Expression, IEnumerable<Expression>)
ExpressionVisitorWithReflection.VisitTry(TryExpression)
ExpressionVisitorWithReflection.MakeTry(Type, Expression, Expression, Expression, IEnumerable<CatchBlock>)
ExpressionVisitorWithReflection.VisitTypeBinary(TypeBinaryExpression)
ExpressionVisitorWithReflection.MakeTypeBinary(ExpressionType, Expression, Type)
ExpressionVisitorWithReflection.VisitUnary(UnaryExpression)
ExpressionVisitorWithReflection.MakeUnary(ExpressionType, Expression, Type, MethodInfo)
ExpressionVisitorWithReflection.VisitBinder(CallSiteBinder)
ExpressionVisitorWithReflection.VisitIfNotNull<T>(T, Func<T, T>)
ScopedExpressionVisitor<ParameterExpression>.TryLookup(ParameterExpression, ParameterExpression)
ScopedExpressionVisitor<ParameterExpression>.Push(IEnumerable<ParameterExpression>)
ScopedExpressionVisitor<ParameterExpression>.Push(IEnumerable<KeyValuePair<ParameterExpression, ParameterExpression>>)
ScopedExpressionVisitor<ParameterExpression>.Pop()
ScopedExpressionVisitor<ParameterExpression>.GlobalScope
ScopedExpressionVisitorBase.VisitBlock(BlockExpression)
ScopedExpressionVisitorBase.VisitCatchBlock(CatchBlock)
ScopedExpressionVisitorBase.VisitLambda<T>(Expression<T>)
Namespace: System.Linq.CompilerServices
Assembly: Nuqleon.Linq.CompilerServices.dll
Syntax
public class StructuralTypeSubstitutionExpressionVisitor : TypeSubstitutionExpressionVisitor

Constructors

StructuralTypeSubstitutionExpressionVisitor(IDictionary<Type, Type>)

Creates a new structural type substitution visitor using the specified type map.

Declaration
public StructuralTypeSubstitutionExpressionVisitor(IDictionary<Type, Type> typeMap)
Parameters
Type Name Description
System.Collections.Generic.IDictionary<System.Type, System.Type> typeMap

Dictionary mapping original types to their rewrite targets.

Methods

AreStructurallyComparable(Object, Type)

Checks whether the value's type is structurally comparable with the specified type.

Declaration
protected virtual bool AreStructurallyComparable(object originalValue, Type newType)
Parameters
Type Name Description
System.Object originalValue

Value whose type to check for structural comparability with the specified type.

System.Type newType

Candidate type the value will get converted to.

Returns
Type Description
System.Boolean

true if the value's type is structurally comparable with the specified type; otherwise, false.

ConvertConstant(Object, Type)

Converts constant nodes containing a rewritten type.

Declaration
protected override object ConvertConstant(object originalValue, Type newType)
Parameters
Type Name Description
System.Object originalValue

Original constant expression node value.

System.Type newType

New structural type to rewrite the constant to.

Returns
Type Description
System.Object

Resulting object obtained from converting the original value to the new type.

Overrides
TypeSubstitutionExpressionVisitor.ConvertConstant(Object, Type)

ConvertConstantStructural(Object, Type)

Converts values of structural types to a new representation.

Declaration
protected virtual object ConvertConstantStructural(object originalValue, Type newType)
Parameters
Type Name Description
System.Object originalValue

Original constant expression node value.

System.Type newType

New structural type to rewrite the constant to.

Returns
Type Description
System.Object

Resulting object obtained from converting the original value to the new type.

In This Article
Back to top Generated by DocFX