Skip to content

Gracefully handle cyclic-reference type errors when using best-effort compilation options #20343

Open
@jchyb

Description

@jchyb

Compiler version

main

Expectation

Currently best-effort compilation does not gracefully handle cyclic-reference type errors. Instead we recognize crashes caused by unpicking them as an unsuccessful best-effort compilation on an IDE side. Additionally any best-effort crash in a vulpix test suite should show a message with a way to disable the best-effort test on CI.
Unpickling cyclic-reference types however crash with StackOverflow errors which makes the CI fix message not show, causing friction to compiler contributors.
Ideally we want to replace any part of cyclic-reference crash with a ErrorType, so that the file can be freely pickled and unpicked. We don't want to do it in typer, so perhaps let's add another phase (triggered only with -Ybest-effort, after erroring in typer) after that to recognize and replace cyclic-reference types.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions