Skip to content

Fully compile primitive value classes #7447

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 1 commit into from
Oct 26, 2019

Conversation

smarter
Copy link
Member

@smarter smarter commented Oct 23, 2019

We used to drop compilation units for primitives after frontend, but
this meant that a standard library compiled by dotty was not usable by
dotty, because the primitive value classes were missing from the
classpath: even though these classes are never loaded at runtime,
they're unpickled at compile-time.

Getting this to work required two changes: silence an error in
refchecks (see comment) and turn off some computations in mixins that
require cls.superClass to exist (primitives have no superclasses after
erasure)

We used to drop compilation units for primitives after frontend, but
this meant that a standard library compiled by dotty was not usable by
dotty, because the primitive value classes were missing from the
classpath: even though these classes are never loaded at runtime,
they're unpickled at compile-time.

Getting this to work required two changes: silence an error in
refchecks (see comment) and turn off some computations in mixins that
require cls.superClass to exist (primitives have no superclasses after
erasure)
@odersky odersky merged commit 34bb622 into scala:master Oct 26, 2019
@odersky odersky deleted the compile-primitives branch October 26, 2019 10:51
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