]> Cypherpunks.ru repositories - gostls13.git/blobdiff - src/go/types/decl.go
[dev.typeparams] merge master (2f0da6d) into dev.typeparams
[gostls13.git] / src / go / types / decl.go
index f2e68bbd5c3fe38e08f978b4e7f74b9bd50e6573..c97b1a66bb975aed9b2068fe3f1e9f7e5dad6bbf 100644 (file)
@@ -511,20 +511,6 @@ func (check *Checker) constDecl(obj *Const, typ, init ast.Expr, inherited bool)
 func (check *Checker) varDecl(obj *Var, lhs []*Var, typ, init ast.Expr) {
        assert(obj.typ == nil)
 
-       // If we have undefined variable types due to errors,
-       // mark variables as used to avoid follow-on errors.
-       // Matches compiler behavior.
-       defer func() {
-               if obj.typ == Typ[Invalid] {
-                       obj.used = true
-               }
-               for _, lhs := range lhs {
-                       if lhs.typ == Typ[Invalid] {
-                               lhs.used = true
-                       }
-               }
-       }()
-
        // determine type, if any
        if typ != nil {
                obj.typ = check.varType(typ)
@@ -668,6 +654,9 @@ func (check *Checker) typeDecl(obj *TypeName, tdecl *ast.TypeSpec, def *Named) {
 
        if alias {
                // type alias declaration
+               if !check.allowVersion(obj.pkg, 1, 9) {
+                       check.errorf(atPos(tdecl.Assign), _BadDecl, "type aliases requires go1.9 or later")
+               }
 
                obj.typ = Typ[Invalid]
                obj.typ = check.anyType(tdecl.Type)