vlib/v/checker/tests/method_op_err.vv:18:20: notice: unused parameter: `u1` 16 | } 17 | 18 | fn (mut u User) * (u1 User) User { | ~~ 19 | return User{} 20 | } vlib/v/checker/tests/method_op_err.vv:22:20: notice: unused parameter: `u1` 20 | } 21 | 22 | fn (u User) / (mut u1 User) User { | ~~ 23 | return User{} 24 | } 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 | 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 12 | } 13 | 14 | fn (u User) - (f Foo) User { | ~~~ 15 | return User{u.a - f.a, u.b - f.a} 16 | } vlib/v/checker/tests/method_op_err.vv:18:9: error: receiver cannot be `mut` for operator overloading 16 | } 17 | 18 | fn (mut u User) * (u1 User) User { | ~~~~~~ 19 | return User{} 20 | } vlib/v/checker/tests/method_op_err.vv:22:1: error: argument cannot be `mut` for operator overloading 20 | } 21 | 22 | fn (u User) / (mut u1 User) User { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 23 | return User{} 24 | } vlib/v/checker/tests/method_op_err.vv:35:10: error: infix expr: cannot use `Foo` (right expression) as `User` 33 | fn 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}) vlib/v/checker/tests/method_op_err.vv:36:10: error: undefined operation `User` < `User` 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} vlib/v/checker/tests/method_op_err.vv:37:10: error: mismatched types `User` and `Foo` 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 vlib/v/checker/tests/method_op_err.vv:37:10: error: infix expr: cannot use `Foo` (right expression) as `User` 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 vlib/v/checker/tests/method_op_err.vv:40:7: error: cannot assign to `u`: expected `User`, not `int literal` 38 | mut u := User{3, 4} 39 | _ = u 40 | u += 12 | ~~ 41 | u %= User{1, 3} 42 | u += User{2, 3} vlib/v/checker/tests/method_op_err.vv:41:2: error: operator %= not defined on left operand type `User` 39 | _ = u 40 | u += 12 41 | u %= User{1, 3} | ^ 42 | u += User{2, 3} 43 | } vlib/v/checker/tests/method_op_err.vv:41:4: error: operator `%` must return `User` to be used as an assignment operator 39 | _ = u 40 | u += 12 41 | u %= User{1, 3} | ~~ 42 | u += User{2, 3} 43 | } vlib/v/checker/tests/method_op_err.vv:42:4: error: operator `+` must return `User` to be used as an assignment operator 40 | u += 12 41 | u %= User{1, 3} 42 | u += User{2, 3} | ~~ 43 | }