Disallow unapplied types in aliases and bounds #9090
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
It's the same as scalac in this respect.
Early on in Dotty's development, we allowed aliases such as
since we treated type parameters as type members, and higher-kinded
types as existential types. This is no longer the case. So the original
motivation for this is gone.
Furthermore, such higher-kinded aliases and bounds tend to make code
more obscure since the kind of a type is no longer obvious. They also
tend to exploit lots of dark corners in the compiler, where we do not
guard properly or early enough against kind-incorrectness. So the restricted
system is both safer and leads to clearer code.
Based on #9089