Skip to content

Fix/erasure lub alternative #359

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

Merged
merged 7 commits into from
Feb 13, 2015

Conversation

odersky
Copy link
Contributor

@odersky odersky commented Feb 11, 2015

This currently fails two tests in the backend. @DarkDimius can you take a look? I think this PR is preferable to #357 but we have to figure out the status of those failures.

(Why is it better to unbox instead of box? The difference is only there if the prototype is either a wildcard type or a selection prototype. the most common case would be the selection prototype, which in this case would be either to an operation on a primitive type or to a generic operation on object (such as equals, toString, hashCode). It seems more important to make the primitive operations fast because they occur more often and take less time than the object operations. The one exception could be equals but we will probably handle this by a decorator anyway going forward.)

The new scheme alignes If, Match, Try to the scheme used in SeqLiteral.
This favors unboxed over boxed types. It is also simpler than the scheme
in the previous commit.
@DarkDimius
Copy link
Contributor

I'll have a look.

… to understand.

if(self eq self) was optimised away, not it's not even emited
Though still it would be better if erasure didn't emmit such trees,
but still it's better to have this phase kore robust.

Also made LabelDefs run in linear time on the size of tree
 instead of square on the Block-depth of tree.
@DarkDimius
Copy link
Contributor

@odersky please review. Especially the last commit.

@odersky
Copy link
Contributor Author

odersky commented Feb 13, 2015

Did only a cursory review of LabelDefs. But LGTM.

DarkDimius added a commit that referenced this pull request Feb 13, 2015
@DarkDimius DarkDimius merged commit 2e72811 into scala:master Feb 13, 2015
tgodzik added a commit to tgodzik/scala3 that referenced this pull request Apr 29, 2025
Backport "Disable Cats flaky tests" to 3.3 LTS
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.

3 participants