Source file
test/fixedbugs/issue77779.go
1
2
3
4
5
6
7 package main
8
9 import (
10 "reflect"
11 )
12
13 type Renderer interface {
14 Render() error
15 }
16
17 type ZeroSize struct{}
18
19 func (ZeroSize) Render() error { return nil }
20
21 type Data struct {
22 X, Y, Z int
23 }
24
25
26
27
28 type Container struct {
29 ZeroSize
30 Data *Data
31 }
32
33 func main() {
34 render(Container{})
35 render(&Container{})
36 }
37
38 func render(iface any) {
39 if reflect.ValueOf(iface).Kind() == reflect.Ptr {
40 _ = reflect.ValueOf(iface).Elem().Field(0).Interface().(Renderer).Render()
41 return
42 }
43
44 _ = reflect.ValueOf(iface).Field(0).Interface().(Renderer).Render()
45 }
46
View as plain text