Skip to content

Commit bd6525e

Browse files
committed
fix(ast): add tests for blocks
1 parent 5355348 commit bd6525e

3 files changed

Lines changed: 35 additions & 1 deletion

File tree

src/passes/ast_gen.rs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ mod test {
262262
Ctx::new()
263263
}
264264

265-
fn parse<T>(source: &'static str) -> T
265+
fn parse<T>(source: &str) -> T
266266
where
267267
T: Parse,
268268
{
@@ -298,4 +298,14 @@ mod test {
298298
let expression_id = pass.lower_expression(&parse::<cst::Expression>(source));
299299
assert_debug_snapshot!(name, pass.ast[expression_id], source);
300300
}
301+
302+
#[rstest]
303+
#[case("expression_statement", "{ 1 }")]
304+
#[case("expression_statement_semicolon", "{ 1; }")]
305+
fn lower_block(#[case] name: &str, mut ctx: Ctx, #[case] source: &str) {
306+
let mut pass = AstGen::new(&mut ctx);
307+
let block = parse::<cst::Block>(source);
308+
let block_id = pass.lower_block(&block);
309+
assert_debug_snapshot!(name, pass.ast[block_id], source);
310+
}
301311
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
source: src/passes/ast_gen.rs
3+
expression: "{ 1 }"
4+
---
5+
Block {
6+
statements: [],
7+
expression: Some(
8+
ExpressionId(
9+
0,
10+
),
11+
),
12+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
source: src/passes/ast_gen.rs
3+
expression: "{ 1; }"
4+
---
5+
Block {
6+
statements: [
7+
StatementId(
8+
0,
9+
),
10+
],
11+
expression: None,
12+
}

0 commit comments

Comments
 (0)