From 789781c56bdfd4188eed2198b26929361d85496a Mon Sep 17 00:00:00 2001 From: isuckatcs <65320245+isuckatcs@users.noreply.github.com> Date: Fri, 28 Jun 2024 20:25:55 +0200 Subject: [PATCH] [AST] dump if condition --- include/ast.h | 2 ++ test/parser/error_recovery_inside_block.al | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/include/ast.h b/include/ast.h index 4185188..a2b19ac 100644 --- a/include/ast.h +++ b/include/ast.h @@ -93,6 +93,7 @@ struct IfStmt : public Stmt { void dump(size_t level = 0) const override { std::cerr << indent(level) << "IfStmt\n"; + condition->dump(level + 1); trueBlock->dump(level + 1); if (falseBlock) falseBlock->dump(level + 1); @@ -370,6 +371,7 @@ struct ResolvedIfStmt : public ResolvedStmt { void dump(size_t level = 0) const override { std::cerr << indent(level) << "ResolvedIfStmt\n"; + condition->dump(level + 1); trueBlock->dump(level + 1); if (falseBlock) falseBlock->dump(level + 1); diff --git a/test/parser/error_recovery_inside_block.al b/test/parser/error_recovery_inside_block.al index 0e8c05f..12327b6 100644 --- a/test/parser/error_recovery_inside_block.al +++ b/test/parser/error_recovery_inside_block.al @@ -18,8 +18,14 @@ fn error(x: number): void { // CHECK-NEXT: ParamDecl: x:number // CHECK-NEXT: Block // CHECK-NEXT: IfStmt +// CHECK-NEXT: BinaryOperator: '==' +// CHECK-NEXT: DeclRefExpr: x +// CHECK-NEXT: NumberLiteral: '0.0' // CHECK-NEXT: Block // CHECK-NEXT: IfStmt +// CHECK-NEXT: BinaryOperator: '==' +// CHECK-NEXT: DeclRefExpr: x +// CHECK-NEXT: NumberLiteral: '2.0 // CHECK-NEXT: Block // CHECK-NEXT: NumberLiteral: '0.0' // CHECK-NEXT: Block