]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.regabi] go/types: convert untyped arguments to delete
authorRob Findley <rfindley@google.com>
Thu, 4 Feb 2021 17:03:53 +0000 (12:03 -0500)
committerRobert Findley <rfindley@google.com>
Tue, 9 Feb 2021 03:28:12 +0000 (03:28 +0000)
This is a port of CL 285059 to go/types. The error assertion is updated
to match go/types error for assignment, which has been improved.

Change-Id: Icdd2751edea0abef7c84feadcbf9265d71239ade
Reviewed-on: https://go-review.googlesource.com/c/go/+/289716
Run-TryBot: Robert Findley <rfindley@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Trust: Robert Findley <rfindley@google.com>
Reviewed-by: Robert Griesemer <gri@golang.org>
src/go/types/builtins.go
src/go/types/testdata/builtins.src

index fd35f7867696d789b93999a04e285144d7d5b849..078ed4488d11b3aded9e8df7a050c65e6dbd70e8 100644 (file)
@@ -353,8 +353,8 @@ func (check *Checker) builtin(x *operand, call *ast.CallExpr, id builtinId) (_ b
                        return
                }
 
-               if ok, code := x.assignableTo(check, m.key, nil); !ok {
-                       check.invalidArg(x, code, "%s is not assignable to %s", x, m.key)
+               check.assignment(x, m.key, "argument to delete")
+               if x.mode == invalid {
                        return
                }
 
index 98830eb08c601458c43bc77294ef1e30f97e4fd6..a7613adc35e1ede56477665ae2b0e610a0916d1b 100644 (file)
@@ -283,7 +283,7 @@ func delete1() {
        delete() // ERROR not enough arguments
        delete(1) // ERROR not enough arguments
        delete(1, 2, 3) // ERROR too many arguments
-       delete(m, 0 /* ERROR not assignable */)
+       delete(m, 0 /* ERROR cannot use */)
        delete(m, s)
        _ = delete /* ERROR used as value */ (m, s)