Skip to content

Commit 396ef5c

Browse files
authored
transformer: add test for infix_expr (#25439)
1 parent 062b9df commit 396ef5c

1 file changed

Lines changed: 33 additions & 0 deletions

File tree

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import v.ast
2+
import v.pref
3+
import v.parser
4+
import v.checker
5+
import v.transformer
6+
7+
fn test_const_infix_expr() {
8+
println(@LOCATION)
9+
source_text := '
10+
const k = 2
11+
fn main() {
12+
x := [(k-1)*2]int{}
13+
}
14+
'
15+
mut table := ast.new_table()
16+
vpref := &pref.Preferences{}
17+
mut prog := parser.parse_text(source_text, '', mut table, .skip_comments, vpref)
18+
mut checker_ := checker.new_checker(table, vpref)
19+
checker_.check(mut prog)
20+
mut t := transformer.new_transformer_with_table(table, vpref)
21+
22+
// get the `InfixExpr`(`(k-1)*2`) from table
23+
main_fn := unsafe { table.cur_fn[0] }
24+
assign_stmt := main_fn.stmts[0] as ast.AssignStmt
25+
array_init_expr := assign_stmt.right[0] as ast.ArrayInit
26+
mut dim_expr := array_init_expr.exprs[0] as ast.InfixExpr
27+
dump(dim_expr)
28+
29+
// verify `infix_expr` work as expected
30+
folded_expr := t.infix_expr(mut dim_expr)
31+
dump(folded_expr)
32+
assert '${folded_expr}' == '(1) * 2'
33+
}

0 commit comments

Comments
 (0)