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 below, 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"
import "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

-- go.mod --
module testdata
go 1.12

-- a/a.go --
package a

import "testdata/b"

var x b.T

func A(b int) {
	x.F() //@ inline(re"F", fresult)
}

-- b/b.go --
package b

type T struct{}

func (T) F() {
	One()
	Two()
}

func One() {}
func Two() {}

-- fresult --
package a

import (
	"testdata/b"
	b0 "testdata/b"
)

var x b.T

func A(b int) {

	b0.One()
	b0.Two()
	//@ inline(re"F", fresult)
}

-- d/d.go --
package d

import "testdata/e"

func D() {
	const log = "shadow"
	e.E() //@ inline(re"E", eresult)
}

-- e/e.go --
package e

import "log"

func E() {
	log.Printf("")
}

-- eresult --
package d

import (
	log0 "log"
)

func D() {
	const log = "shadow"
	log0.Printf("") //@ inline(re"E", eresult)
}
