mirror of
https://github.com/golang/go
synced 2024-09-24 05:20:13 -06:00
cmd/compile: remove incannedimport
This used to be used to give special semantics to the builtin definitions of package runtime and unsafe, but none of those are relevant anymore: - The builtin runtime and unsafe packages do not risk triggering false import cycles since they no longer contain `import "runtime"`. - bimport.go never creates ODCLTYPE, so no need to special case them. - "incannedimport != 0" is only true when "importpkg != nil" anyway, so "incannedimport == 0 && importpkg == nil" is equivalent to just "importpkg == nil". Change-Id: I076f15dd705d4962e7a4c33972e304ef67e7effb Reviewed-on: https://go-review.googlesource.com/29084 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
parent
4c83d29144
commit
1ee5446414
@ -289,7 +289,7 @@ func (p *importer) pkg() *Pkg {
|
||||
} else if pkg.Name != name {
|
||||
Yyerror("conflicting package names %s and %s for path %q", pkg.Name, name, path)
|
||||
}
|
||||
if incannedimport == 0 && myimportpath != "" && path == myimportpath {
|
||||
if myimportpath != "" && path == myimportpath {
|
||||
Yyerror("import %q: package depends on %q (import cycle)", importpkg.Path, path)
|
||||
errorexit()
|
||||
}
|
||||
|
@ -231,8 +231,6 @@ var funcsyms []*Node
|
||||
|
||||
var dclcontext Class // PEXTERN/PAUTO
|
||||
|
||||
var incannedimport int
|
||||
|
||||
var statuniqgen int // name generator for static temps
|
||||
|
||||
var iota_ int32
|
||||
|
@ -685,15 +685,12 @@ func loadsys() {
|
||||
|
||||
block = 1
|
||||
iota_ = -1000000
|
||||
incannedimport = 1
|
||||
|
||||
importpkg = Runtimepkg
|
||||
Import(bufio.NewReader(strings.NewReader(runtimeimport)))
|
||||
importpkg = unsafepkg
|
||||
Import(bufio.NewReader(strings.NewReader(unsafeimport)))
|
||||
|
||||
importpkg = nil
|
||||
incannedimport = 0
|
||||
}
|
||||
|
||||
func importfile(f *Val, indent []byte) {
|
||||
|
@ -2096,9 +2096,7 @@ OpSwitch:
|
||||
case ODCLTYPE:
|
||||
ok |= Etop
|
||||
n.Left = typecheck(n.Left, Etype)
|
||||
if incannedimport == 0 {
|
||||
checkwidth(n.Left.Type)
|
||||
}
|
||||
checkwidth(n.Left.Type)
|
||||
break OpSwitch
|
||||
}
|
||||
|
||||
@ -2114,7 +2112,7 @@ OpSwitch:
|
||||
}
|
||||
}
|
||||
|
||||
if safemode && incannedimport == 0 && importpkg == nil && compiling_wrappers == 0 && t != nil && t.Etype == TUNSAFEPTR {
|
||||
if safemode && importpkg == nil && compiling_wrappers == 0 && t != nil && t.Etype == TUNSAFEPTR {
|
||||
Yyerror("cannot use unsafe.Pointer")
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user