]> Cypherpunks repositories - gostls13.git/commitdiff
go/types, types2: better error message when selecting on a built-in
authorRobert Griesemer <gri@google.com>
Wed, 30 Oct 2024 22:57:42 +0000 (15:57 -0700)
committerGopher Robot <gobot@golang.org>
Mon, 4 Nov 2024 22:18:19 +0000 (22:18 +0000)
Fixes #43285.

Change-Id: Iddadf76e2dc10fcf77f588c865a68125ebeda290
Reviewed-on: https://go-review.googlesource.com/c/go/+/623756
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Robert Griesemer <gri@google.com>
Auto-Submit: Robert Griesemer <gri@google.com>
Reviewed-by: Robert Findley <rfindley@google.com>
src/cmd/compile/internal/types2/call.go
src/go/types/call.go
src/internal/types/testdata/fixedbugs/issue51360.go

index 9095349e1d8eafe8bdfebed6e6017dc308acfb13..8dbf9df33a98f11879e590a40ab27fd2efca61f0 100644 (file)
@@ -774,7 +774,7 @@ func (check *Checker) selector(x *operand, e *syntax.SelectorExpr, def *TypeName
                        goto Error
                }
        case builtin:
-               check.errorf(e.Pos(), UncalledBuiltin, "cannot select on %s", x)
+               check.errorf(e.Pos(), UncalledBuiltin, "invalid use of %s in selector expression", x)
                goto Error
        case invalid:
                goto Error
index 459e927f7ebf7ed59fdb6f9db40f80ea6c2069ed..6db746e4089568d6545130778ddb0b064fa4d1cc 100644 (file)
@@ -777,7 +777,7 @@ func (check *Checker) selector(x *operand, e *ast.SelectorExpr, def *TypeName, w
                }
        case builtin:
                // types2 uses the position of '.' for the error
-               check.errorf(e.Sel, UncalledBuiltin, "cannot select on %s", x)
+               check.errorf(e.Sel, UncalledBuiltin, "invalid use of %s in selector expression", x)
                goto Error
        case invalid:
                goto Error
index 1b9c45a9342f08c68243815b988582a51bd4284d..1798a4ab2fd3f8b96e91386b58711c054af18739 100644 (file)
@@ -5,9 +5,9 @@
 package p
 
 func _() {
-       len.Println /* ERROR "cannot select on len" */
-       len.Println /* ERROR "cannot select on len" */ ()
-       _ = len.Println /* ERROR "cannot select on len" */
+       len.Println /* ERROR "invalid use of len (built-in) in selector expression" */
+       len.Println /* ERROR "invalid use of len (built-in) in selector expression" */ ()
+       _ = len.Println /* ERROR "invalid use of len (built-in) in selector expression" */
        _ = len /* ERROR "cannot index len" */ [0]
        _ = *len /* ERROR "cannot indirect len" */
 }