mirror of
https://github.com/golang/go
synced 2024-11-05 23:36:12 -07:00
ee392ac10c
It is possible to have an unexported name with a nil package, for an embedded field whose type is a pointer to an unexported type. We must encode that fact in the type..namedata symbol name, to avoid incorrectly merging an unexported name with an exported name. Fixes #21120 Change-Id: I2e3879d77fa15c05ad92e0bf8e55f74082db5111 Reviewed-on: https://go-review.googlesource.com/50710 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org>
30 lines
424 B
Go
30 lines
424 B
Go
// 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 b
|
|
|
|
import "reflect"
|
|
|
|
type X int
|
|
|
|
func F1() string {
|
|
type x X
|
|
|
|
s := struct {
|
|
*x
|
|
}{nil}
|
|
v := reflect.TypeOf(s)
|
|
return v.Field(0).PkgPath
|
|
}
|
|
|
|
func F2() string {
|
|
type y X
|
|
|
|
s := struct {
|
|
*y
|
|
}{nil}
|
|
v := reflect.TypeOf(s)
|
|
return v.Field(0).PkgPath
|
|
}
|