mirror of
https://github.com/golang/go
synced 2024-11-26 14:08:37 -07:00
cmd/compile: don't use ."" as a pkg prefix
This results in names to unexported fields like net.(*Dialer)."".deadline instead of net.(*Dialer).deadline. Fixes #18419. Change-Id: I0415c68b77cc16125c2401320f56308060ac3f25 Reviewed-on: https://go-review.googlesource.com/44070 Run-TryBot: Daniel Martí <mvdan@mvdan.cc> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
This commit is contained in:
parent
504b8d15d6
commit
e5e0e5fc3e
@ -899,7 +899,7 @@ func methodsym(nsym *types.Sym, t0 *types.Type, iface bool) *types.Sym {
|
|||||||
spkg = s.Pkg
|
spkg = s.Pkg
|
||||||
}
|
}
|
||||||
pkgprefix := ""
|
pkgprefix := ""
|
||||||
if (spkg == nil || nsym.Pkg != spkg) && !exportname(nsym.Name) {
|
if (spkg == nil || nsym.Pkg != spkg) && !exportname(nsym.Name) && nsym.Pkg.Prefix != `""` {
|
||||||
pkgprefix = "." + nsym.Pkg.Prefix
|
pkgprefix = "." + nsym.Pkg.Prefix
|
||||||
}
|
}
|
||||||
var p string
|
var p string
|
||||||
|
11
test/fixedbugs/issue18419.dir/other.go
Normal file
11
test/fixedbugs/issue18419.dir/other.go
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
// Copyright 2017 The Go Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package other
|
||||||
|
|
||||||
|
type Exported struct {
|
||||||
|
Member int
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *Exported) member() int { return 1 }
|
15
test/fixedbugs/issue18419.dir/test.go
Normal file
15
test/fixedbugs/issue18419.dir/test.go
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
// errorcheck -0 -m -l
|
||||||
|
|
||||||
|
// Copyright 2017 The Go Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
|
import "./other"
|
||||||
|
|
||||||
|
func InMyCode(e *other.Exported) {
|
||||||
|
e.member() // ERROR "e\.member undefined .cannot refer to unexported field or method other\.\(\*Exported\)\.member."
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {}
|
7
test/fixedbugs/issue18419.go
Normal file
7
test/fixedbugs/issue18419.go
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
// errorcheckdir
|
||||||
|
|
||||||
|
// Copyright 2015 The Go Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package ignored
|
Loading…
Reference in New Issue
Block a user