]> Cypherpunks repositories - gostls13.git/commitdiff
go/types, types2: consistently use _UnsupportedFeature error code
authorRobert Griesemer <gri@golang.org>
Thu, 8 Sep 2022 23:33:08 +0000 (16:33 -0700)
committerGopher Robot <gobot@golang.org>
Tue, 13 Sep 2022 12:38:14 +0000 (12:38 +0000)
Change-Id: Ie880871bb855e1c1f6e543508bdc7dd415451ba3
Reviewed-on: https://go-review.googlesource.com/c/go/+/429735
Reviewed-by: Robert Griesemer <gri@google.com>
Auto-Submit: Robert Griesemer <gri@google.com>
Run-TryBot: Robert Griesemer <gri@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Robert Findley <rfindley@google.com>
src/cmd/compile/internal/types2/errorcodes.go
src/cmd/compile/internal/types2/expr.go
src/go/types/builtins.go
src/go/types/decl.go
src/go/types/errorcodes.go
src/go/types/expr.go
src/go/types/typeset.go
src/go/types/version.go

index f8118aba87ce0e49eb2a4653ba9b16f90abc5dc0..a1138b7b0d5058e4c69f25d7ad8df9b48a9f7445 100644 (file)
@@ -279,7 +279,7 @@ const (
 
        // _InvalidIfaceEmbed occurs when a non-interface type is embedded in an
        // interface (for go 1.17 or earlier).
-       _InvalidIfaceEmbed
+       _ // not used anymore
 
        // _InvalidPtrEmbed occurs when an embedded field is of the pointer form *T,
        // and T itself is itself a pointer, an unsafe.Pointer, or an interface.
@@ -1419,5 +1419,5 @@ const (
 
        // _InvalidUnsafeStringData occurs if it is used in a package
        // compiled for a language version before go1.20.
-       _InvalidUnsafeStringData
+       _ // not used anymore
 )
index e922118746ab396863a138ad9591140316d6ede1..9834926b111cf042f3e6a6705421972dae9587ba 100644 (file)
@@ -978,7 +978,7 @@ func (check *Checker) shift(x, y *operand, e syntax.Expr, op syntax.Operator) {
                switch {
                case allInteger(y.typ):
                        if !allUnsigned(y.typ) && !check.allowVersion(check.pkg, 1, 13) {
-                               check.errorf(y, _InvalidShiftCount, invalidOp+"signed shift count %s requires go1.13 or later", y)
+                               check.versionErrorf(y, "go1.13", invalidOp+"signed shift count %s", y)
                                x.mode = invalid
                                return
                        }
index eff4f2b027f5ecccbb85c95543748058c54899e4..c06cf448e927d4c3f98ada247c7200736220b54d 100644 (file)
@@ -604,7 +604,7 @@ func (check *Checker) builtin(x *operand, call *ast.CallExpr, id builtinId) (_ b
        case _Add:
                // unsafe.Add(ptr unsafe.Pointer, len IntegerType) unsafe.Pointer
                if !check.allowVersion(check.pkg, 1, 17) {
-                       check.errorf(call.Fun, _InvalidUnsafeAdd, "unsafe.Add requires go1.17 or later")
+                       check.errorf(call.Fun, _UnsupportedFeature, "unsafe.Add requires go1.17 or later")
                        return
                }
 
@@ -730,7 +730,7 @@ func (check *Checker) builtin(x *operand, call *ast.CallExpr, id builtinId) (_ b
        case _Slice:
                // unsafe.Slice(ptr *T, len IntegerType) []T
                if !check.allowVersion(check.pkg, 1, 17) {
-                       check.errorf(call.Fun, _InvalidUnsafeSlice, "unsafe.Slice requires go1.17 or later")
+                       check.errorf(call.Fun, _UnsupportedFeature, "unsafe.Slice requires go1.17 or later")
                        return
                }
 
@@ -755,7 +755,7 @@ func (check *Checker) builtin(x *operand, call *ast.CallExpr, id builtinId) (_ b
        case _SliceData:
                // unsafe.SliceData(slice []T) *T
                if !check.allowVersion(check.pkg, 1, 20) {
-                       check.errorf(call.Fun, _InvalidUnsafeSliceData, "unsafe.SliceData requires go1.20 or later")
+                       check.errorf(call.Fun, _UnsupportedFeature, "unsafe.SliceData requires go1.20 or later")
                        return
                }
 
@@ -774,7 +774,7 @@ func (check *Checker) builtin(x *operand, call *ast.CallExpr, id builtinId) (_ b
        case _String:
                // unsafe.String(ptr *byte, len IntegerType) string
                if !check.allowVersion(check.pkg, 1, 20) {
-                       check.errorf(call.Fun, _InvalidUnsafeString, "unsafe.String requires go1.20 or later")
+                       check.errorf(call.Fun, _UnsupportedFeature, "unsafe.String requires go1.20 or later")
                        return
                }
 
@@ -798,7 +798,7 @@ func (check *Checker) builtin(x *operand, call *ast.CallExpr, id builtinId) (_ b
        case _StringData:
                // unsafe.StringData(str string) *byte
                if !check.allowVersion(check.pkg, 1, 20) {
-                       check.errorf(call.Fun, _InvalidUnsafeStringData, "unsafe.StringData requires go1.20 or later")
+                       check.errorf(call.Fun, _UnsupportedFeature, "unsafe.StringData requires go1.20 or later")
                        return
                }
 
index 829aee74b3f92ceb620b5490289b6ed81a22a079..a14df45dca6b0592eaf876177f839a8bd1ede280 100644 (file)
@@ -569,7 +569,7 @@ func (check *Checker) typeDecl(obj *TypeName, tdecl *ast.TypeSpec, def *Named) {
        // alias declaration
        if alias {
                if !check.allowVersion(check.pkg, 1, 9) {
-                       check.errorf(atPos(tdecl.Assign), _BadDecl, "type aliases requires go1.9 or later")
+                       check.errorf(atPos(tdecl.Assign), _UnsupportedFeature, "type aliases requires go1.9 or later")
                }
 
                check.brokenAlias(obj)
index d1fd2fb01f9aca19130609564b422dd9b2a80a04..b82300f8ad9b19853c301c30ee891edf8772ed62 100644 (file)
@@ -279,7 +279,7 @@ const (
 
        // _InvalidIfaceEmbed occurs when a non-interface type is embedded in an
        // interface (for go 1.17 or earlier).
-       _InvalidIfaceEmbed
+       _ // not used anymore
 
        // _InvalidPtrEmbed occurs when an embedded field is of the pointer form *T,
        // and T itself is itself a pointer, an unsafe.Pointer, or an interface.
@@ -1419,5 +1419,5 @@ const (
 
        // _InvalidUnsafeStringData occurs if it is used in a package
        // compiled for a language version before go1.20.
-       _InvalidUnsafeStringData
+       _ // not used anymore
 )
index 4d3dd9edaba208d5a780ece0adc1c3e3f182b109..c3cf46c137f9c8f305463282be947306931060d4 100644 (file)
@@ -955,7 +955,7 @@ func (check *Checker) shift(x, y *operand, e ast.Expr, op token.Token) {
                switch {
                case allInteger(y.typ):
                        if !allUnsigned(y.typ) && !check.allowVersion(check.pkg, 1, 13) {
-                               check.invalidOp(y, _InvalidShiftCount, "signed shift count %s requires go1.13 or later", y)
+                               check.invalidOp(y, _UnsupportedFeature, "signed shift count %s requires go1.13 or later", y)
                                x.mode = invalid
                                return
                        }
index fc4647e8500aa7ca8ba08324de3c2c2ba7b97056..25408b3178df0b638869dce60e9b7f226763a0de 100644 (file)
@@ -286,7 +286,7 @@ func computeInterfaceTypeSet(check *Checker, pos token.Pos, ityp *Interface) *_T
                        terms = tset.terms
                case *Union:
                        if check != nil && !check.allowVersion(check.pkg, 1, 18) {
-                               check.errorf(atPos(pos), _InvalidIfaceEmbed, "embedding interface element %s requires go1.18 or later", u)
+                               check.errorf(atPos(pos), _UnsupportedFeature, "embedding interface element %s requires go1.18 or later", u)
                                continue
                        }
                        tset := computeUnionTypeSet(check, unionSets, pos, u)
@@ -301,7 +301,7 @@ func computeInterfaceTypeSet(check *Checker, pos token.Pos, ityp *Interface) *_T
                                continue
                        }
                        if check != nil && !check.allowVersion(check.pkg, 1, 18) {
-                               check.errorf(atPos(pos), _InvalidIfaceEmbed, "embedding non-interface type %s requires go1.18 or later", typ)
+                               check.errorf(atPos(pos), _UnsupportedFeature, "embedding non-interface type %s requires go1.18 or later", typ)
                                continue
                        }
                        terms = termlist{{false, typ}}
index 154694169b49da2f61f4ac0de5fb7a3544058cd5..71093c6818ce095582cd5bf41a0d1ae9d8e956cf 100644 (file)
@@ -22,7 +22,7 @@ func (check *Checker) langCompat(lit *ast.BasicLit) {
        }
        // len(s) > 2
        if strings.Contains(s, "_") {
-               check.errorf(lit, _InvalidLit, "underscores in numeric literals requires go1.13 or later")
+               check.errorf(lit, _UnsupportedFeature, "underscores in numeric literals requires go1.13 or later")
                return
        }
        if s[0] != '0' {
@@ -30,15 +30,15 @@ func (check *Checker) langCompat(lit *ast.BasicLit) {
        }
        radix := s[1]
        if radix == 'b' || radix == 'B' {
-               check.errorf(lit, _InvalidLit, "binary literals requires go1.13 or later")
+               check.errorf(lit, _UnsupportedFeature, "binary literals requires go1.13 or later")
                return
        }
        if radix == 'o' || radix == 'O' {
-               check.errorf(lit, _InvalidLit, "0o/0O-style octal literals requires go1.13 or later")
+               check.errorf(lit, _UnsupportedFeature, "0o/0O-style octal literals requires go1.13 or later")
                return
        }
        if lit.Kind != token.INT && (radix == 'x' || radix == 'X') {
-               check.errorf(lit, _InvalidLit, "hexadecimal floating-point literals requires go1.13 or later")
+               check.errorf(lit, _UnsupportedFeature, "hexadecimal floating-point literals requires go1.13 or later")
        }
 }