File tree Expand file tree Collapse file tree 1 file changed +4
-1
lines changed
Expand file tree Collapse file tree 1 file changed +4
-1
lines changed Original file line number Diff line number Diff line change @@ -145,6 +145,8 @@ struct primary_expression_node
145145 std::unique_ptr<inspect_expression_node>,
146146 std::unique_ptr<literal_node>
147147 > expr;
148+ // Cache to work around <https://github.com/llvm/llvm-project/issues/73336>.
149+ bool expression_list_is_fold_expression = false ;
148150
149151
150152 // API
@@ -1556,7 +1558,7 @@ auto primary_expression_node::is_fold_expression() const
15561558 break ;case identifier:
15571559 return *std::get<identifier>(expr) == " ..." ;
15581560 break ;case expression_list:
1559- return std::get<expression_list>(expr)-> is_fold_expression () ;
1561+ return expression_list_is_fold_expression ;
15601562 break ;case id_expression:
15611563 return std::get<id_expression>(expr)->is_fold_expression ();
15621564 break ;default : ; // the others can't contain folds
@@ -5467,6 +5469,7 @@ class parser
54675469 ) {
54685470 expr_list->inside_initializer = false ;
54695471 }
5472+ n->expression_list_is_fold_expression = expr_list->is_fold_expression ();
54705473 n->expr = std::move (expr_list);
54715474 return n;
54725475 }
You can’t perform that action at this time.
0 commit comments