diff --git a/src/go/internal/gcimporter/gcimporter_test.go b/src/go/internal/gcimporter/gcimporter_test.go index dd41c2550c..54fda86208 100644 --- a/src/go/internal/gcimporter/gcimporter_test.go +++ b/src/go/internal/gcimporter/gcimporter_test.go @@ -179,6 +179,7 @@ func TestImportTypeparamTests(t *testing.T) { "issue50417.go": "inconsistent interface member sorting", "issue53419.go": "fails to compile", "issue53477.go": "fails to compile", + "issue55101.go": "fails to compile", } for _, entry := range list { diff --git a/test/run.go b/test/run.go index 3c5b10ad32..f4d24c597b 100644 --- a/test/run.go +++ b/test/run.go @@ -1987,6 +1987,7 @@ var go118Failures = setOf( "typeparam/issue51521.go", // 1.18 compiler produces bad panic message and link error "typeparam/issue54456.go", // 1.18 compiler fails to distinguish local generic types "typeparam/issue54497.go", // 1.18 compiler is more conservative about inlining due to repeated issues + "typeparam/issue55101.go", // 1.18 compiler ICEs writing export data "typeparam/mdempsky/16.go", // 1.18 compiler uses interface shape type in failed type assertions "typeparam/mdempsky/17.go", // 1.18 compiler mishandles implicit conversions from range loops "typeparam/mdempsky/18.go", // 1.18 compiler mishandles implicit conversions in select statements diff --git a/test/typeparam/issue55101.go b/test/typeparam/issue55101.go new file mode 100644 index 0000000000..2d45c87a28 --- /dev/null +++ b/test/typeparam/issue55101.go @@ -0,0 +1,16 @@ +// compile + +// Copyright 2022 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 p + +func F() *Cache[error] { return nil } + +type Cache[T any] struct{ l *List[entry[T]] } +type entry[T any] struct{ value T } +type List[T any] struct{ len int } + +func (c *Cache[V]) Len() int { return c.l.Len() } +func (l *List[T]) Len() int { return l.len }