checker: fix goto label with comptime tmpl (#12853)
parent
2b981b011e
commit
c44115c67d
|
@ -30,6 +30,7 @@ fn (mut c Checker) comptime_call(mut node ast.ComptimeCall) ast.Type {
|
|||
}
|
||||
if node.is_vweb {
|
||||
// TODO assoc parser bug
|
||||
save_cur_fn := c.table.cur_fn
|
||||
pref_ := *c.pref
|
||||
pref2 := &pref.Preferences{
|
||||
...pref_
|
||||
|
@ -56,6 +57,8 @@ fn (mut c Checker) comptime_call(mut node ast.ComptimeCall) ast.Type {
|
|||
c.nr_warnings += c2.nr_warnings
|
||||
c.nr_errors += c2.nr_errors
|
||||
c.nr_notices += c2.nr_notices
|
||||
|
||||
c.table.cur_fn = save_cur_fn
|
||||
}
|
||||
if node.method_name == 'html' {
|
||||
rtyp := c.table.find_type_idx('vweb.Result')
|
||||
|
|
|
@ -36,3 +36,19 @@ pub fn test_goto_after_return() {
|
|||
finally_ok:
|
||||
assert true
|
||||
}
|
||||
|
||||
fn test_goto_with_comptime_tmpl() {
|
||||
a := 22
|
||||
_ := $tmpl('./tmpl/a.txt')
|
||||
println('before goto')
|
||||
|
||||
unsafe {
|
||||
goto label
|
||||
}
|
||||
println('failed goto')
|
||||
assert false
|
||||
|
||||
label:
|
||||
println('goto label')
|
||||
assert true
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue