@@ -1281,6 +1281,22 @@ class ThisExpressionAST final : public ExpressionAST {
12811281 auto lastSourceLocation () -> SourceLocation override ;
12821282};
12831283
1284+ class NestedStatementExpressionAST final : public ExpressionAST {
1285+ public:
1286+ static constexpr ASTKind Kind = ASTKind::NestedStatementExpression;
1287+
1288+ NestedStatementExpressionAST () : ExpressionAST(Kind) {}
1289+
1290+ SourceLocation lparenLoc;
1291+ CompoundStatementAST* statement = nullptr ;
1292+ SourceLocation rparenLoc;
1293+
1294+ void accept (ASTVisitor* visitor) override { visitor->visit (this ); }
1295+
1296+ auto firstSourceLocation () -> SourceLocation override ;
1297+ auto lastSourceLocation () -> SourceLocation override ;
1298+ };
1299+
12841300class NestedExpressionAST final : public ExpressionAST {
12851301 public:
12861302 static constexpr ASTKind Kind = ASTKind::NestedExpression;
@@ -4363,6 +4379,9 @@ auto visit(Visitor&& visitor, ExpressionAST* ast) {
43634379 case ThisExpressionAST::Kind:
43644380 return std::invoke (std::forward<Visitor>(visitor),
43654381 static_cast <ThisExpressionAST*>(ast));
4382+ case NestedStatementExpressionAST::Kind:
4383+ return std::invoke (std::forward<Visitor>(visitor),
4384+ static_cast <NestedStatementExpressionAST*>(ast));
43664385 case NestedExpressionAST::Kind:
43674386 return std::invoke (std::forward<Visitor>(visitor),
43684387 static_cast <NestedExpressionAST*>(ast));
@@ -4527,6 +4546,7 @@ auto visit(Visitor&& visitor, ExpressionAST* ast) {
45274546 case StringLiteralExpressionAST::Kind:
45284547 case UserDefinedStringLiteralExpressionAST::Kind:
45294548 case ThisExpressionAST::Kind:
4549+ case NestedStatementExpressionAST::Kind:
45304550 case NestedExpressionAST::Kind:
45314551 case IdExpressionAST::Kind:
45324552 case LambdaExpressionAST::Kind:
0 commit comments