mirror of
https://github.com/golang/go
synced 2024-11-05 18:36:08 +00:00
undo CL 66510044 / 6c0339d94123
Broke other things - see issue 7522. Fixes #7522. Reopens issue 7363. ««« original CL description cmd/gc: make embedded, unexported fields read-only. Fixes #7363. LGTM=gri R=gri, rsc, bradfitz CC=golang-codereviews https://golang.org/cl/66510044 »»» LGTM=r, mpvl R=golang-codereviews, r CC=golang-codereviews, iant, mpvl https://golang.org/cl/85580046
This commit is contained in:
parent
72185093f6
commit
c48db9a473
2 changed files with 1 additions and 28 deletions
|
@ -1138,8 +1138,7 @@ ok:
|
|||
ot = dgopkgpath(s, ot, t1->sym->pkg);
|
||||
} else {
|
||||
ot = dgostringptr(s, ot, nil);
|
||||
if(t1->type->sym != S &&
|
||||
(t1->type->sym->pkg == builtinpkg || !exportname(t1->type->sym->name)))
|
||||
if(t1->type->sym != S && t1->type->sym->pkg == builtinpkg)
|
||||
ot = dgopkgpath(s, ot, localpkg);
|
||||
else
|
||||
ot = dgostringptr(s, ot, nil);
|
||||
|
|
|
@ -1,26 +0,0 @@
|
|||
// run
|
||||
|
||||
// Copyright 2014 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.
|
||||
|
||||
// issue 7363: CanSet must return false for unexported embedded struct fields.
|
||||
|
||||
package main
|
||||
|
||||
import "reflect"
|
||||
|
||||
type a struct {
|
||||
}
|
||||
|
||||
type B struct {
|
||||
a
|
||||
}
|
||||
|
||||
func main() {
|
||||
b := &B{}
|
||||
v := reflect.ValueOf(b).Elem().Field(0)
|
||||
if v.CanSet() {
|
||||
panic("B.a is an unexported embedded struct field")
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue