v4 / vlib / v / checker / tests / method_op_err.vv
43 lines · 36 sloc · 543 bytes · 0c8ce3bcb9fd4a2e5bd5f991a5a07da976d780d7
Raw
1struct User {
2 a int
3 b int
4}
5
6struct Foo {
7 a int
8 b int
9}
10
11fn (u User) % () {
12}
13
14fn (u User) - (f Foo) User {
15 return User{u.a - f.a, u.b - f.a}
16}
17
18fn (mut u User) * (u1 User) User {
19 return User{}
20}
21
22fn (u User) / (mut u1 User) User {
23 return User{}
24}
25
26fn (u User) + (u1 User) Foo {
27 return Foo{
28 a: u.a + u1.a
29 b: u.b + u1.b
30 }
31}
32
33fn main() {
34 println(User{3, 4})
35 println(User{3, 4} - Foo{3, 3})
36 println(User{3, 2} < User{2, 4})
37 println(User{3, 4} < Foo{3, 4})
38 mut u := User{3, 4}
39 _ = u
40 u += 12
41 u %= User{1, 3}
42 u += User{2, 3}
43}
44