From f3ea00b189dd01e8c1a3f5202e914c2aff1af389 Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Tue, 1 Dec 2015 16:41:00 +0100 Subject: [PATCH] Turn '=>' lambda expressions into side-effect-free statements fixes #10760 --- lib/config/config_parser.yy | 42 ++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/lib/config/config_parser.yy b/lib/config/config_parser.yy index dc83a242e..e1c3589b0 100644 --- a/lib/config/config_parser.yy +++ b/lib/config/config_parser.yy @@ -690,27 +690,6 @@ rterm_side_effect: rterm '(' rterm_items ')' $$ = new FunctionCallExpression($1, *$3, @$); delete $3; } - | identifier T_FOLLOWS rterm - { - DictExpression *aexpr = dynamic_cast($3); - if (aexpr) - aexpr->MakeInline(); - - std::vector args; - args.push_back(*$1); - delete $1; - - $$ = new FunctionExpression(args, new std::map(), $3, @$); - } - | '(' identifier_items ')' T_FOLLOWS rterm - { - DictExpression *aexpr = dynamic_cast($5); - if (aexpr) - aexpr->MakeInline(); - - $$ = new FunctionExpression(*$2, new std::map(), $5, @$); - delete $2; - } | T_IF '(' rterm ')' rterm_scope else_if_branches { $5->MakeInline(); @@ -814,6 +793,27 @@ rterm_no_side_effect: T_STRING { $$ = MakeLiteral(@$.FirstLine); } + | identifier T_FOLLOWS rterm + { + DictExpression *aexpr = dynamic_cast($3); + if (aexpr) + aexpr->MakeInline(); + + std::vector args; + args.push_back(*$1); + delete $1; + + $$ = new FunctionExpression(args, new std::map(), $3, @$); + } + | '(' identifier_items ')' T_FOLLOWS rterm + { + DictExpression *aexpr = dynamic_cast($5); + if (aexpr) + aexpr->MakeInline(); + + $$ = new FunctionExpression(*$2, new std::map(), $5, @$); + delete $2; + } | rterm_array | rterm_scope_require_side_effect {