[illegal] Add field with private type

This commit is contained in:
Fedor Korotkiy 2023-04-23 14:55:18 +04:00
parent 11277ded5b
commit 8e45511bc4
2 changed files with 12 additions and 2 deletions

View file

@ -14,8 +14,9 @@ func TestIllegalField(t *testing.T) {
illegal.SetPrivateField(&s, "a", 10) illegal.SetPrivateField(&s, "a", 10)
illegal.SetPrivateField(&s, "b", "foo") illegal.SetPrivateField(&s, "b", "foo")
illegal.SetPrivateField(&s, "p", internal.NewPrivateType(42))
assert.Equal(t, "10 foo", s.String()) assert.Equal(t, "10 foo 42", s.String())
} }
func TestIllegalWrongFieldType(t *testing.T) { func TestIllegalWrongFieldType(t *testing.T) {

View file

@ -4,11 +4,20 @@ package internal
import "fmt" import "fmt"
type privateType struct {
x int
}
func NewPrivateType(x int) any {
return privateType{x}
}
type Struct struct { type Struct struct {
a int a int
b string b string
p privateType
} }
func (s *Struct) String() string { func (s *Struct) String() string {
return fmt.Sprintf("%d %s", s.a, s.b) return fmt.Sprintf("%d %s %d", s.a, s.b, s.p.x)
} }