]> granicus.if.org Git - icinga2/commitdiff
Turn '=>' lambda expressions into side-effect-free statements
authorGunnar Beutner <gunnar@beutner.name>
Tue, 1 Dec 2015 15:41:00 +0000 (16:41 +0100)
committerGunnar Beutner <gunnar@beutner.name>
Tue, 1 Dec 2015 15:41:00 +0000 (16:41 +0100)
fixes #10760

lib/config/config_parser.yy

index dc83a242eaf8ad68d4fa4b805fee1fe2f0526a14..e1c3589b0901af90d7ed67f83c82a865aa4eaf9d 100644 (file)
@@ -690,27 +690,6 @@ rterm_side_effect: rterm '(' rterm_items ')'
                $$ = new FunctionCallExpression($1, *$3, @$);
                delete $3;
        }
-       | identifier T_FOLLOWS rterm
-       {
-               DictExpression *aexpr = dynamic_cast<DictExpression *>($3);
-               if (aexpr)
-                       aexpr->MakeInline();
-
-               std::vector<String> args;
-               args.push_back(*$1);
-               delete $1;
-
-               $$ = new FunctionExpression(args, new std::map<String, Expression *>(), $3, @$);
-       }
-       | '(' identifier_items ')' T_FOLLOWS rterm
-       {
-               DictExpression *aexpr = dynamic_cast<DictExpression *>($5);
-               if (aexpr)
-                       aexpr->MakeInline();
-
-               $$ = new FunctionExpression(*$2, new std::map<String, Expression *>(), $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<DictExpression *>($3);
+               if (aexpr)
+                       aexpr->MakeInline();
+
+               std::vector<String> args;
+               args.push_back(*$1);
+               delete $1;
+
+               $$ = new FunctionExpression(args, new std::map<String, Expression *>(), $3, @$);
+       }
+       | '(' identifier_items ')' T_FOLLOWS rterm
+       {
+               DictExpression *aexpr = dynamic_cast<DictExpression *>($5);
+               if (aexpr)
+                       aexpr->MakeInline();
+
+               $$ = new FunctionExpression(*$2, new std::map<String, Expression *>(), $5, @$);
+               delete $2;
+       }
        | rterm_array
        | rterm_scope_require_side_effect
        {