diff --git a/_test/issue-1571.go b/_test/issue-1571.go new file mode 100644 index 000000000..aa295ad6d --- /dev/null +++ b/_test/issue-1571.go @@ -0,0 +1,20 @@ +package main + +type A struct { + *B[string] +} + +type B[T any] struct { + data T +} + +func main() { + _ = &A{ + B: &B[string]{}, + } + + println("PASS") +} + +// Output: +// PASS diff --git a/interp/type.go b/interp/type.go index 6c493b31b..81cf52036 100644 --- a/interp/type.go +++ b/interp/type.go @@ -1230,6 +1230,8 @@ func fieldName(n *node) string { return fieldName(n.child[1]) case starExpr: return fieldName(n.child[0]) + case indexExpr: + return fieldName(n.child[0]) case identExpr: return n.ident default: