Skip to content

Make magic imply error handling, cc, source future - #26963

Open
odersky wants to merge 6 commits into
scala:mainfrom
dotty-staging:magic-changes
Open

Make magic imply error handling, cc, source future#26963
odersky wants to merge 6 commits into
scala:mainfrom
dotty-staging:magic-changes

Conversation

@odersky

@odersky odersky commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Based on #26956.

New language feature: experimental.errorHandling. It needs -Yexplicit-nulls to be also set

This enables the following:

 - Add maybe types T? and T ? E.
 - Add amybe prompt and postfix e? operator
 - Implement subtype rules
 - Implement erasure rules
 - Special pattern-matching rules for Ok and Err extractors
Comes with the following bug fixes:

 1. Maybe arguments should not be boxed.
 2. Capture sets of module vals need to be interpolated
 3. When reporting overriding errors under -explain, use isSubTypeWhenFrozen
 4. Interpolate self types of modules downwards
 5. Make Tuple a Pure trait (fails i13968-maybe.scala otherwise)
 6. Make newSyntax a def so that it can see language imports

Also: Move spec string support into new package magic.compiletime
This could be the result of inlining, in which case the warning would be
annoying. Also, the warning message is about divergence not about redundant tests.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants