]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: apply -importmap to imports before checking for package unsafe
authorRuss Cox <rsc@golang.org>
Fri, 8 Jan 2016 16:36:36 +0000 (11:36 -0500)
committerRuss Cox <rsc@golang.org>
Fri, 8 Jan 2016 19:16:50 +0000 (19:16 +0000)
There are fewer special cases this way: the import map applies
to all import paths, not just the ones not spelled "unsafe".

This is also consistent with what the code in cmd/go and go/build expects.
They make no exception for "unsafe".

For #13703.

Change-Id: I622295261ca35a6c1e83e8508d363bddbddb6c0a
Reviewed-on: https://go-review.googlesource.com/18438
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
src/cmd/compile/internal/gc/lex.go

index 830c56df6088671e0a34db60d66ba4366b3ba9e9..fb30d58527061055f4feb839d47974afa12a2e3d 100644 (file)
@@ -694,7 +694,13 @@ func importfile(f *Val, line int) {
                errorexit()
        }
 
-       if f.U.(string) == "unsafe" {
+       path_ := f.U.(string)
+
+       if mapped, ok := importMap[path_]; ok {
+               path_ = mapped
+       }
+
+       if path_ == "unsafe" {
                if safemode != 0 {
                        Yyerror("cannot import package unsafe")
                        errorexit()
@@ -706,12 +712,6 @@ func importfile(f *Val, line int) {
                return
        }
 
-       path_ := f.U.(string)
-
-       if mapped, ok := importMap[path_]; ok {
-               path_ = mapped
-       }
-
        if islocalname(path_) {
                if path_[0] == '/' {
                        Yyerror("import path cannot be absolute path")