See import-shadow.txtar for a description.

-- 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 b0 "testdata/b"

import "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)
}
