Skip to content

Commit 2911f03

Browse files
authored
checker: reject method that have multi-value type receiver (#8696)
1 parent 70a3037 commit 2911f03

File tree

3 files changed

+6
-0
lines changed

3 files changed

+6
-0
lines changed

vlib/v/checker/checker.v

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5753,6 +5753,8 @@ fn (mut c Checker) fn_decl(mut node ast.FnDecl) {
57535753
c.error('method overrides built-in array method', node.pos)
57545754
} else if sym.kind == .sum_type && node.name == 'type_name' {
57555755
c.error('method overrides built-in sum type method', node.pos)
5756+
} else if sym.kind == .multi_return {
5757+
c.error('cannot define method on multi-value', node.method_type_pos)
57565758
}
57575759
if sym.name.len == 1 {
57585760
// One letter types are reserved for generics.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
vlib/v/checker/tests/multi_value_method_err.vv:1:7: error: cannot define method on multi-value
2+
1 | fn (v (int, int)) f() {}
3+
| ~~~~~~~~~~
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
fn (v (int, int)) f() {}

0 commit comments

Comments
 (0)