struct Abc {
mut:
x int = 123
}
fn (mut s Abc) close() ? {
println('> CLOSE 1 s.x: $s.x')
s.x = -1
println('> CLOSE 2 s.x: $s.x')
fn opt2() ?int {
mut s := Abc{}
dump(s.x)
defer {
s.close()?
return s.x
fn main() {
println(opt2()?)