-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Replace erased class modifiers with Erased base traits #23447
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Doc pages are now updated to the new scheme. See c878878. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are a lot of comments, but most of them are pretty minor.
The only really point is about erased lazy val
s, which I don't think we can allow unless we check they can be evaluated.
Since we will force erased expressions to be pure values, they are always initialized.
- erasedValue[<ConstantType>] is now considered to be pure - calls of synthetic case class apply are considered pure if the case class is NoInits - Companions of Scala-2 classes Tuple and Some are assumed to be NoInits
Drop the previous convention that Singleton is an erased class under x.modularity. That does not work anynmore if we change to the Erased trait scheme.
Replace with test whether a type derivesFrom Erased.
We should never have flaky tests. Please, everyone adding new tests, watch out for this.
Co-authored-by: Eugene Flesselle <[email protected]>
But erased givens are OK since they don't get the lazy flag set.
@EugeneFlesselle All green now. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
Based on #23419
Fixes #23406