]> Cypherpunks repositories - gostls13.git/commitdiff
go/types: match types2 errors for missing index expressions
authorRobert Griesemer <gri@golang.org>
Fri, 19 Aug 2022 00:25:58 +0000 (17:25 -0700)
committerRobert Griesemer <gri@golang.org>
Fri, 19 Aug 2022 19:39:51 +0000 (19:39 +0000)
Use "middle" and "final" rather than "2nd" and "3rd" in error messages
for invalid slice expressions. This is the original compiler error
message and many tests check for this specific message.

For #54511.

Change-Id: I86eb739aa7218b7f393fab1ab402732cb9e9a1f6
Reviewed-on: https://go-review.googlesource.com/c/go/+/424906
Reviewed-by: Robert Findley <rfindley@google.com>
Reviewed-by: Alan Donovan <adonovan@google.com>
Reviewed-by: Robert Griesemer <gri@google.com>
src/go/parser/parser.go
src/go/parser/short_test.go
src/go/types/testdata/check/expr3.go

index d405ade6a5bbfbea4d68603f691f8c6e7f054203..2883ea1d3e08604ecfd74b87c76312acac4f0383 100644 (file)
@@ -1511,14 +1511,14 @@ func (p *parser) parseIndexOrSliceOrInstance(x ast.Expr) ast.Expr {
                slice3 := false
                if ncolons == 2 {
                        slice3 = true
-                       // Check presence of 2nd and 3rd index here rather than during type-checking
+                       // Check presence of middle and final index here rather than during type-checking
                        // to prevent erroneous programs from passing through gofmt (was issue 7305).
                        if index[1] == nil {
-                               p.error(colons[0], "2nd index required in 3-index slice")
+                               p.error(colons[0], "middle index required in 3-index slice")
                                index[1] = &ast.BadExpr{From: colons[0] + 1, To: colons[1]}
                        }
                        if index[2] == nil {
-                               p.error(colons[1], "3rd index required in 3-index slice")
+                               p.error(colons[1], "final index required in 3-index slice")
                                index[2] = &ast.BadExpr{From: colons[1] + 1, To: rbrack}
                        }
                }
index 4d1da11706f253b4d23e31a8ce9f9632cbacdcb2..88d93d67d69f50fb3aa6a93e5fe5aa20d3752f31 100644 (file)
@@ -160,11 +160,11 @@ var invalids = []string{
        `package p; func f() { _ = x = /* ERROR "expected '=='" */ 0 {}};`,
        `package p; func f() { _ = 1 == func()int { var x bool; x = x = /* ERROR "expected '=='" */ true; return x }() };`,
        `package p; func f() { var s []int; _ = s[] /* ERROR "expected operand" */ };`,
-       `package p; func f() { var s []int; _ = s[i:j: /* ERROR "3rd index required" */ ] };`,
-       `package p; func f() { var s []int; _ = s[i: /* ERROR "2nd index required" */ :k] };`,
-       `package p; func f() { var s []int; _ = s[i: /* ERROR "2nd index required" */ :] };`,
-       `package p; func f() { var s []int; _ = s[: /* ERROR "2nd index required" */ :] };`,
-       `package p; func f() { var s []int; _ = s[: /* ERROR "2nd index required" */ ::] };`,
+       `package p; func f() { var s []int; _ = s[i:j: /* ERROR "final index required" */ ] };`,
+       `package p; func f() { var s []int; _ = s[i: /* ERROR "middle index required" */ :k] };`,
+       `package p; func f() { var s []int; _ = s[i: /* ERROR "middle index required" */ :] };`,
+       `package p; func f() { var s []int; _ = s[: /* ERROR "middle index required" */ :] };`,
+       `package p; func f() { var s []int; _ = s[: /* ERROR "middle index required" */ ::] };`,
        `package p; func f() { var s []int; _ = s[i:j:k: /* ERROR "expected ']'" */ l] };`,
        `package p; func f() { for x /* ERROR "boolean or range expression" */ = []string {} }`,
        `package p; func f() { for x /* ERROR "boolean or range expression" */ := []string {} }`,
index b8f96dc6113e51ed739dc5fc1bd0db0f1e84253f..ba6c7dd31434cf8571f3d1fd8be7877a132fc48e 100644 (file)
@@ -19,9 +19,9 @@ func indexes() {
        _ = a[- /* ERROR "negative" */ 1]
        _ = a[- /* ERROR "negative" */ 1 :]
        _ = a[: - /* ERROR "negative" */ 1]
-       _ = a[: /* ERROR "2nd index required" */ : /* ERROR "3rd index required" */ ]
-       _ = a[0: /* ERROR "2nd index required" */ : /* ERROR "3rd index required" */ ]
-       _ = a[0: /* ERROR "2nd index required" */ :10]
+       _ = a[: /* ERROR "middle index required" */ : /* ERROR "final index required" */ ]
+       _ = a[0: /* ERROR "middle index required" */ : /* ERROR "final index required" */ ]
+       _ = a[0: /* ERROR "middle index required" */ :10]
        _ = a[:10:10]
 
        var a0 int
@@ -87,7 +87,7 @@ func indexes() {
        _ = s[: 1 /* ERROR "overflows" */ <<100]
        _ = s[1 /* ERROR "overflows" */ <<100 :]
        _ = s[1 /* ERROR "overflows" */ <<100 : 1 /* ERROR "overflows" */ <<100]
-       _ = s[: /* ERROR "2nd index required" */ :  /* ERROR "3rd index required" */ ]
+       _ = s[: /* ERROR "middle index required" */ :  /* ERROR "final index required" */ ]
        _ = s[:10:10]
        _ = s[10:0 /* ERROR "invalid slice indices" */ :10]
        _ = s[0:10:0 /* ERROR "invalid slice indices" */ ]