mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
Fix #1021 - Optional or
branch doesn't define err
This commit is contained in:
parent
8a2d25247f
commit
af19aa5096
@ -1142,6 +1142,13 @@ fn (p mut Parser) var_decl() {
|
||||
p.next()
|
||||
p.check(LCBR)
|
||||
p.genln('if (!$tmp .ok) {')
|
||||
p.register_var(Var {
|
||||
name: 'err'
|
||||
typ: 'string'
|
||||
is_mut: false
|
||||
is_used: true
|
||||
})
|
||||
p.genln('string err = $tmp . error;')
|
||||
p.statements()
|
||||
p.genln('$typ $name = *($typ*) $tmp . data;')
|
||||
if !p.returns && p.prev_tok2 != CONTINUE && p.prev_tok2 != BREAK {
|
||||
|
10
compiler/tests/option_test.v
Normal file
10
compiler/tests/option_test.v
Normal file
@ -0,0 +1,10 @@
|
||||
fn opt_err() ?string {return error('hi')}
|
||||
|
||||
fn test_err(){
|
||||
v := opt_err() or {
|
||||
assert err == 'hi'
|
||||
return
|
||||
}
|
||||
assert false
|
||||
println(v) // suppress not used error
|
||||
}
|
Loading…
Reference in New Issue
Block a user