Skip to content

Commit 05ce45a

Browse files
committed
2 parents 871e366 + 2f48916 commit 05ce45a

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

source/parse.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff 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
}

0 commit comments

Comments
 (0)