Skip to content

go/types, cmd/compile: "invalid type loop" depending on declaration order #51244

Open
@mdempsky

Description

@mdempsky

types2 currently rejects the test case below with "invalid recursive type A". Swapping the order of declarations for A and B makes the error go away.

package p

type A interface{ M(B[T]) }
type B[_ A] struct{}

type T struct{}
func (T) M(B[T]) {}

/cc @findleyr @griesemer @ianlancetaylor

Metadata

Metadata

Assignees

Labels

NeedsFixThe path to resolution is known, but the work has not been done.early-in-cycleA change that should be done early in the 3 month dev cycle.

Type

No type

Projects

Status

No status

Relationships

None yet

Development

No branches or pull requests

Issue actions