v
v copied to clipboard
referenced operator overloading do not work
V version: Latest commit OS: WSL 2
What did you do?
struct Foo {
f int
}
fn (f &Foo) + (f1 &Foo) &Foo {
return &Foo{f:f.f+f1.f}
}
f := &Foo{2}
g := &Foo{3}
println(f + g)
What did you expect to see?
&Foo2{
f: 5
}
What did you see instead?
main.v:10:9: error: invalid operator `+` to `&Foo` and `&Foo`
8 | f := &Foo{2}
9 | g := &Foo{3}
10 | println(f + g)
| ~~~~~
11 |
12 |
Same for referenced generic operator overloading
struct Foo<T> {
f T
}
fn (f &Foo<T>) + (f1 &Foo<T>) &Foo<T> {
return &Foo<T>{f:f.f+f1.f}
}
f := &Foo<int>{2}
g := &Foo<int>{3}
println(f + g)