```Go type base(type T) struct{ pointer T } type foo struct { // <<< should get a cycle error here _ (base(foo)) } type foo2 struct { // <<< correctly reporting illegal cycle in declaration of foo2 _ struct{ pointer foo2 } } ``` Found as part of #39901.