public static bool IsConstant(Expression exp, out object value, out Type type, Decoder decoder) { VisitorForValueOf visitor = decoder.visitorForValueOf; bool result = Decode(exp, visitor, decoder); value = visitor.Value; type = visitor.Type; return(result); }
public Decoder(IExpressionContext <Local, Parameter, Method, Field, Type, Expression, Variable> context, IDecodeMetaData <Local, Parameter, Method, Field, Property, Event, Type, Attribute, Assembly> decoderForMetaData) { Contract.Requires(context != null); this.context = context; this.decoderForMetaData = decoderForMetaData; visitorForIsUnaryExpression = new VisitorForIsUnaryExpression(); visitorForIsBinaryExpression = new VisitorForIsBinaryExpression(); visitorForVariablesIn = new VisitorForVariablesIn(context); visitorForValueOf = new VisitorForValueOf(); visitorForSizeOf = new VisitorForSizeOf(); visitorForIsNull = new VisitorForIsNull(); visitorForVariable = new VisitorForVariable(); visitorForIsInst = new VisitorForIsInst(); visitorForUnderlyingVariable = new VisitorForUnderlyingVariable(); visitorForDispatch = new VisitorForDispatch(this); }
public bool IsConstant(Expression exp, out object value, out Type type) { return(VisitorForValueOf.IsConstant(exp, out value, out type, this)); }