blob: c4ea9a616248726cf5a101d5c134310946bdc11f [file] [log] [blame]
Just because a package (e.g. log) is imported by the caller,
and the name log is in scope, doesn't mean the name in scope
refers to the package: it could be locally shadowed.
In all three scenarios in this file and import-shadow-2.txtar, a renaming
import with a fresh name is added because the usual name is locally
shadowed: in cases 1, 2 an existing import is shadowed by (respectively)
a local constant, parameter; in case 3 there is no existing import.
-- go.mod --
module testdata
go 1.12
-- a/a.go --
package a
import (
"testdata/b"
"log"
)
func A() {
const log = "shadow"
b.B() //@ inline(re"B", bresult)
}
var _ log.Logger
-- b/b.go --
package b
import "log"
func B() {
log.Printf("")
}
-- bresult --
package a
import (
"log"
log0 "log"
)
func A() {
const log = "shadow"
log0.Printf("") //@ inline(re"B", bresult)
}
var _ log.Logger