diff options
author | Robert Griesemer <gri@golang.org> | 2021-01-27 18:04:46 -0800 |
---|---|---|
committer | Robert Griesemer <gri@golang.org> | 2021-01-28 16:29:00 +0000 |
commit | f7d1c5990b9aed6a402c3cbdae6f43638172918d (patch) | |
tree | 02184f487f67c2cacd0aeaaba6bd011787b18a00 /src/cmd/compile/internal/types2/resolver.go | |
parent | 217a461f56cecee1756bef29f9ad2dcd389a255b (diff) | |
download | go-f7d1c5990b9aed6a402c3cbdae6f43638172918d.tar.gz go-f7d1c5990b9aed6a402c3cbdae6f43638172918d.zip |
[dev.typeparams] cmd/compile/internal/types2: must not import a package called "init"
Updates #43962.
Change-Id: I070153c55baec62d13ca9284f02781b8c1276844
Reviewed-on: https://go-review.googlesource.com/c/go/+/287494
Trust: Robert Griesemer <gri@golang.org>
Run-TryBot: Robert Griesemer <gri@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Robert Findley <rfindley@google.com>
Diffstat (limited to 'src/cmd/compile/internal/types2/resolver.go')
-rw-r--r-- | src/cmd/compile/internal/types2/resolver.go | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/src/cmd/compile/internal/types2/resolver.go b/src/cmd/compile/internal/types2/resolver.go index 2a84015cfc..44fa51a8e5 100644 --- a/src/cmd/compile/internal/types2/resolver.go +++ b/src/cmd/compile/internal/types2/resolver.go @@ -250,14 +250,6 @@ func (check *Checker) collectObjects() { continue } - // add package to list of explicit imports - // (this functionality is provided as a convenience - // for clients; it is not needed for type-checking) - if !pkgImports[imp] { - pkgImports[imp] = true - pkg.imports = append(pkg.imports, imp) - } - // local name overrides imported package name name := imp.name if s.LocalPkgName != nil { @@ -267,10 +259,19 @@ func (check *Checker) collectObjects() { check.errorf(s.LocalPkgName, `cannot rename import "C"`) continue } - if name == "init" { - check.errorf(s.LocalPkgName, "cannot declare init - must be func") - continue - } + } + + if name == "init" { + check.errorf(s.LocalPkgName, "cannot import package as init - init must be a func") + continue + } + + // add package to list of explicit imports + // (this functionality is provided as a convenience + // for clients; it is not needed for type-checking) + if !pkgImports[imp] { + pkgImports[imp] = true + pkg.imports = append(pkg.imports, imp) } pkgName := NewPkgName(s.Pos(), pkg, name, imp) |