Esempio n. 1
0
        protected override Expression VisitIdentifierName(IdentifierNameBindingParserNode node)
        {
            var expr = ExpressionHelper.GetMember(Scope, node.Name, throwExceptions: false) ??
                       Registry.Resolve(node.Name, false);

            if (expr == null)
            {
                throw new BindingCompilationException($"The identifier '{ node.Name }' could not be resolved!", node);
            }
            return(expr);
        }
Esempio n. 2
0
        private Expression GetMemberOrTypeExpression(IdentifierNameBindingParserNode node, Type[] typeParameters)
        {
            var expr =
                Scope == null
                ? Registry.Resolve(node.Name, throwException : false)
                : (ExpressionHelper.GetMember(Scope, node.Name, typeParameters, throwExceptions: false, onlyMemberTypes: ResolveOnlyTypeName) ?? Registry.Resolve(node.Name, throwException: false));

            if (expr == null)
            {
                return(new UnknownStaticClassIdentifierExpression(node.Name));
            }
            if (expr is ParameterExpression && expr.Type == typeof(ExpressionHelper.UnknownTypeSentinel))
            {
                throw new Exception($"Type of '{expr}' could not be resolved.");
            }
            return(expr);
        }
Esempio n. 3
0
 protected override Expression VisitIdentifierName(IdentifierNameBindingParserNode node)
 {
     return(GetMemberOrTypeExpression(node, null));
 }