sort: require a mutable receiver
parent
93e6c3df6a
commit
06967d9297
|
@ -872,6 +872,7 @@ pub fn (mut c Checker) call_method(mut call_expr ast.CallExpr) table.Type {
|
|||
if is_filter_map {
|
||||
scope.update_var_type('it', array_info.elem_type)
|
||||
} else if is_sort {
|
||||
c.fail_if_immutable(call_expr.left)
|
||||
scope.update_var_type('a', array_info.elem_type)
|
||||
scope.update_var_type('b', array_info.elem_type)
|
||||
// Verify `.sort(a < b)`
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
vlib/v/checker/tests/sort_method_called_on_immutable_receiver.v:2:2: error: `a` is immutable, declare it with `mut` to make it mutable
|
||||
1 | fn abc (a []int) {
|
||||
2 | a.sort()
|
||||
| ^
|
||||
3 | }
|
||||
4 |
|
||||
vlib/v/checker/tests/sort_method_called_on_immutable_receiver.v:7:2: error: `a` is immutable, declare it with `mut` to make it mutable
|
||||
5 | fn main() {
|
||||
6 | a := [2,30,10,20,1]
|
||||
7 | a.sort(a>b)
|
||||
| ^
|
||||
8 | eprintln(' a: $a')
|
||||
9 | }
|
|
@ -0,0 +1,9 @@
|
|||
fn abc (a []int) {
|
||||
a.sort()
|
||||
}
|
||||
|
||||
fn main() {
|
||||
a := [2,30,10,20,1]
|
||||
a.sort(a>b)
|
||||
eprintln(' a: $a')
|
||||
}
|
Loading…
Reference in New Issue