Regression test for #62667: the callee's reference to Split
was blindly qualified to path.Split even though the imported
PkgName path is shadowed by the parameter of the same name.

The defer is to defeat reduction of the call and
substitution of the path parameter by g().

-- go.mod --
module testdata
go 1.12

-- a/a.go --
package a

import "testdata/path"

func A() {
	path.Dir(g()) //@ inline(re"Dir", result)
}

func g() string

-- path/path.go --
package path

func Dir(path string) {
	defer func(){}()
	Split(path)
}

func Split(string) {}

-- result --
package a

import (
	path0 "testdata/path"
)

func A() {
	func() { var path string = g(); defer func() {}(); path0.Split(path) }() //@ inline(re"Dir", result)
}

func g() string