aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/types2/resolver.go
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2021-01-27 18:04:46 -0800
committerRobert Griesemer <gri@golang.org>2021-01-28 16:29:00 +0000
commitf7d1c5990b9aed6a402c3cbdae6f43638172918d (patch)
tree02184f487f67c2cacd0aeaaba6bd011787b18a00 /src/cmd/compile/internal/types2/resolver.go
parent217a461f56cecee1756bef29f9ad2dcd389a255b (diff)
downloadgo-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.go25
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)