v2 / vlib / v / checker / tests / unsafe_method_as_field.vv
27 lines · 21 sloc · 264 bytes · 757929392e0e7a75fc1272116460981e589737d5
Raw
1struct Foo {
2}
3
4fn (f Foo) no_ref() int {
5 return 1
6}
7
8fn (f &Foo) ref() int {
9 return 1
10}
11
12@[heap]
13struct Bar {
14}
15
16fn (f &Bar) ref() int {
17 return 1
18}
19
20fn main() {
21 f := Foo{}
22 _ := f.no_ref // no error
23 _ := f.ref // error
24
25 b := Bar{}
26 _ := b.ref // no error
27}
28