2020-12-31 12:38:10 +01:00
|
|
|
vlib/v/checker/tests/method_op_err.vv:11:1: error: operator methods should have exactly 1 argument
|
|
|
|
9 | }
|
|
|
|
10 |
|
|
|
|
11 | fn (u User) + () {
|
|
|
|
| ~~~~~~~~~~~~~~~~
|
|
|
|
12 | }
|
|
|
|
13 |
|
2021-01-17 03:37:44 +01:00
|
|
|
vlib/v/checker/tests/method_op_err.vv:14:18: error: expected `User` not `Foo` - both operands must be the same type for operator overloading
|
2020-12-31 12:38:10 +01:00
|
|
|
12 | }
|
|
|
|
13 |
|
|
|
|
14 | fn (u User) - (f Foo) User {
|
2021-01-17 03:37:44 +01:00
|
|
|
| ~~~
|
2020-12-31 12:38:10 +01:00
|
|
|
15 | return User{u.a - f.a, u.b-f.a}
|
|
|
|
16 | }
|
2021-02-03 15:18:38 +01:00
|
|
|
vlib/v/checker/tests/method_op_err.vv:18:9: error: receiver cannot be `mut` for operator overloading
|
2021-01-01 14:54:32 +01:00
|
|
|
16 | }
|
|
|
|
17 |
|
2021-02-03 15:18:38 +01:00
|
|
|
18 | fn (mut u User) * (u1 User) User {
|
|
|
|
| ~~~~~~
|
2021-01-01 14:54:32 +01:00
|
|
|
19 | return User{}
|
|
|
|
20 | }
|
2021-02-03 15:18:38 +01:00
|
|
|
vlib/v/checker/tests/method_op_err.vv:22:1: error: argument cannot be `mut` for operator overloading
|
2021-01-12 04:37:20 +01:00
|
|
|
20 | }
|
|
|
|
21 |
|
2021-02-03 15:18:38 +01:00
|
|
|
22 | fn (u User) / (mut u1 User) User {
|
|
|
|
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2021-01-12 04:37:20 +01:00
|
|
|
23 | return User{}
|
|
|
|
24 | }
|
2021-02-19 11:38:41 +01:00
|
|
|
vlib/v/checker/tests/method_op_err.vv:32:13: error: infix expr: cannot use `Foo` (right expression) as `User`
|
2021-02-03 15:18:38 +01:00
|
|
|
30 | fn main() {
|
|
|
|
31 | println(User{3, 4})
|
|
|
|
32 | println(User{3, 4} - Foo{3, 3})
|
2021-02-19 11:38:41 +01:00
|
|
|
| ~~~~~~~~~~~~~~~~~~~~~~
|
2021-02-03 15:18:38 +01:00
|
|
|
33 | println(User{3, 2} < User{2, 4})
|
|
|
|
34 | println(User{3, 4} < Foo{3, 4})
|
2021-02-19 11:38:41 +01:00
|
|
|
vlib/v/checker/tests/method_op_err.vv:33:13: error: undefined operation `User` < `User`
|
2021-02-03 15:18:38 +01:00
|
|
|
31 | println(User{3, 4})
|
|
|
|
32 | println(User{3, 4} - Foo{3, 3})
|
|
|
|
33 | println(User{3, 2} < User{2, 4})
|
2021-02-19 11:38:41 +01:00
|
|
|
| ~~~~~~~~~~~~~~~~~~~~~~~
|
2021-02-03 15:18:38 +01:00
|
|
|
34 | println(User{3, 4} < Foo{3, 4})
|
|
|
|
35 | mut u := User{3, 4}
|
2021-02-19 11:38:41 +01:00
|
|
|
vlib/v/checker/tests/method_op_err.vv:34:13: error: mismatched types `User` and `Foo`
|
2021-02-03 15:18:38 +01:00
|
|
|
32 | println(User{3, 4} - Foo{3, 3})
|
|
|
|
33 | println(User{3, 2} < User{2, 4})
|
|
|
|
34 | println(User{3, 4} < Foo{3, 4})
|
2021-02-19 11:38:41 +01:00
|
|
|
| ~~~~~~~~~~~~~~~~~~~~~~
|
2021-02-03 15:18:38 +01:00
|
|
|
35 | mut u := User{3, 4}
|
2021-04-23 12:33:48 +02:00
|
|
|
36 | _ = u
|
|
|
|
vlib/v/checker/tests/method_op_err.vv:37:10: error: cannot assign to `u`: expected `User`, not `int literal`
|
2021-02-03 15:18:38 +01:00
|
|
|
35 | mut u := User{3, 4}
|
2021-04-23 12:33:48 +02:00
|
|
|
36 | _ = u
|
|
|
|
37 | u += 12
|
2021-01-13 03:31:14 +01:00
|
|
|
| ~~
|
2021-04-23 12:33:48 +02:00
|
|
|
38 | u %= User{1, 3}
|
|
|
|
39 | u += User{2, 3}
|
|
|
|
vlib/v/checker/tests/method_op_err.vv:38:5: error: operator %= not defined on left operand type `User`
|
|
|
|
36 | _ = u
|
|
|
|
37 | u += 12
|
|
|
|
38 | u %= User{1, 3}
|
2021-01-13 03:31:14 +01:00
|
|
|
| ^
|
2021-04-23 12:33:48 +02:00
|
|
|
39 | u += User{2, 3}
|
|
|
|
40 | }
|
|
|
|
vlib/v/checker/tests/method_op_err.vv:39:7: error: operator `+` must return `User` to be used as an assignment operator
|
|
|
|
37 | u += 12
|
|
|
|
38 | u %= User{1, 3}
|
|
|
|
39 | u += User{2, 3}
|
2021-01-13 03:31:14 +01:00
|
|
|
| ~~
|
2021-04-23 12:33:48 +02:00
|
|
|
40 | }
|