mirror of
https://github.com/golang/go.git
synced 2025-05-05 23:53:05 +00:00
imports: fix renamed sibling imports more
This is the fix I should have made in CL 153440. What I get for being in a rush. Fixes golang/go#29180 Change-Id: I7ee3e26173b86c70574b9710f84094e46db27a37 Reviewed-on: https://go-review.googlesource.com/c/153859 Run-TryBot: Heschi Kreinick <heschi@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Cottrell <iancottrell@google.com>
This commit is contained in:
parent
837e80568c
commit
5f4a60f04f
@ -200,7 +200,12 @@ func (p *pass) findMissingImport(pkg string, syms map[string]bool) *importInfo {
|
|||||||
if !ok {
|
if !ok {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if candidate.name != pkg && pkgInfo.name != pkg {
|
// If the candidate import has a name, it must match pkg.
|
||||||
|
if candidate.name != "" && candidate.name != pkg {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
// Otherwise, the real name of the package must match.
|
||||||
|
if candidate.name == "" && pkgInfo.name != pkg {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1966,6 +1966,34 @@ func LogSomethingElse() {
|
|||||||
}.processTest(t, "foo.com", "p/needs_import.go", nil, nil, want)
|
}.processTest(t, "foo.com", "p/needs_import.go", nil, nil, want)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Tests #29180: a sibling import of the right package with the wrong name is used.
|
||||||
|
func TestSiblingImport_Misnamed(t *testing.T) {
|
||||||
|
const sibling = `package main
|
||||||
|
import renamed "fmt"
|
||||||
|
var _ = renamed.Printf
|
||||||
|
`
|
||||||
|
const input = `package pkg
|
||||||
|
var _ = fmt.Printf
|
||||||
|
`
|
||||||
|
const want = `package pkg
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
var _ = fmt.Printf
|
||||||
|
`
|
||||||
|
|
||||||
|
testConfig{
|
||||||
|
module: packagestest.Module{
|
||||||
|
Name: "foo.com",
|
||||||
|
Files: fm{
|
||||||
|
"pkg/main.go": sibling,
|
||||||
|
"pkg/uses.go": input,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}.processTest(t, "foo.com", "pkg/uses.go", nil, nil, want)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
func TestPkgIsCandidate(t *testing.T) {
|
func TestPkgIsCandidate(t *testing.T) {
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
|
Loading…
x
Reference in New Issue
Block a user