protected virtual Expression VisitSubExpression(SubExpressionExpression subex)
        {
            Expression expression = Visit(subex.Expression);

            if (expression != subex.Expression)
            {
                return(HandlebarsExpression.SubExpression(expression));
            }
            return(subex);
        }
 protected override Expression VisitSubExpression(SubExpressionExpression subex)
 {
     var helperCall = subex.Expression as MethodCallExpression;
     if (helperCall == null)
     {
         throw new HandlebarsCompilerException("Sub-expression does not contain a converted MethodCall expression");
     }
     HandlebarsHelper helper = GetHelperDelegateFromMethodCallExpression(helperCall);
     return Expression.Call(
         new Func<HandlebarsHelper, object, object[], string>(CaptureTextWriterOutputFromHelper).Method,
         Expression.Constant(helper),
         helperCall.Arguments[1],
         helperCall.Arguments[2]);
 }
        protected override Expression VisitSubExpression(SubExpressionExpression subex)
        {
            var helperCall = subex.Expression as MethodCallExpression;

            if (helperCall == null)
            {
                throw new HandlebarsCompilerException("Sub-expression does not contain a converted MethodCall expression");
            }
            HandlebarsHelper helper = GetHelperDelegateFromMethodCallExpression(helperCall);

            return(Expression.Call(
                       new Func <HandlebarsHelper, object, object[], string>(CaptureTextWriterOutputFromHelper).Method,
                       Expression.Constant(helper),
                       helperCall.Arguments[1],
                       helperCall.Arguments[2]));
        }
        protected override Expression VisitSubExpression(SubExpressionExpression subex)
        {
            switch (subex.Expression)
            {
            case MethodCallExpression callExpression:
                return(HandleMethodCallExpression(callExpression));

            default:
                var expression = FunctionBuilder.Reduce(subex.Expression, CompilationContext);
                if (expression is MethodCallExpression lateBoundCall)
                {
                    return(HandleMethodCallExpression(lateBoundCall));
                }

                throw new HandlebarsCompilerException("Sub-expression does not contain a converted MethodCall expression");
            }
        }
        protected override System.Linq.Expressions.Expression VisitSubExpression(SubExpressionExpression subex)
        {
            if (!(subex.Expression is MethodCallExpression helperCall))
            {
                throw new HandlebarsCompilerException("Sub-expression does not contain a converted MethodCall expression");
            }
            HandlebarsHelper helper = GetHelperDelegateFromMethodCallExpression(helperCall);

            return(System.Linq.Expressions.Expression.Call(
#if netstandard
                       new Func <HandlebarsHelper, object, object[], string>(CaptureTextWriterOutputFromHelper).GetMethodInfo(),
#else
                       new Func <HandlebarsHelper, object, object[], string>(CaptureTextWriterOutputFromHelper).Method,
#endif
                       System.Linq.Expressions.Expression.Constant(helper),
                       Visit(helperCall.Arguments[1]),
                       Visit(helperCall.Arguments[2])));
        }
Beispiel #6
0
        protected override Expression VisitSubExpression(SubExpressionExpression subex)
        {
            var helperCall = subex.Expression as MethodCallExpression;

            if (helperCall == null)
            {
                throw new HandlebarsCompilerException("Sub-expression does not contain a converted MethodCall expression");
            }
            var helper = GetHelperDelegateFromMethodCallExpression(helperCall);

            return(Expression.Call(
#if netstandard
                       new Func <HandlebarsHelperV2, IHandlebarsEngine, object, object[], string>(CaptureTextWriterOutputFromHelper).GetMethodInfo(),
#else
                       new Func <HandlebarsHelperV2, IHandlebarsEngine, object, object[], string>(CaptureTextWriterOutputFromHelper).Method,
#endif
                       Expression.Constant(helper),
                       Visit(helperCall.Arguments[0]),
                       Visit(helperCall.Arguments[2]),
                       Visit(helperCall.Arguments[3])));
        }
 protected override Expression VisitSubExpression(SubExpressionExpression subex)
 {
     return HandlebarsExpression.SubExpression(
         Visit(subex.Expression));
 }
 protected virtual Expression VisitSubExpression(SubExpressionExpression subex)
 {
     return subex;
 }
Beispiel #9
0
 protected override Expression VisitSubExpression(SubExpressionExpression subex)
 {
     return(HandlebarsExpression.SubExpression(
                Visit(subex.Expression)));
 }
Beispiel #10
0
 protected virtual Expression VisitSubExpression(SubExpressionExpression subex)
 {
     return(subex);
 }
Beispiel #11
0
 protected virtual System.Linq.Expressions.Expression VisitSubExpression(SubExpressionExpression subex)
 {
     return(subex);
 }