-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Using java.util.Collections kills the compiler ("class file ... is broken, ...") #536
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
Labels
Comments
Sounds similar scala/scala#2750, but that symptom appears in other bugs too. |
Assigning LowPriority as it does not stop us from bootstrapping. |
Closed
liufengyun
pushed a commit
to dotty-staging/dotty
that referenced
this issue
Sep 6, 2017
odersky
added a commit
to dotty-staging/dotty
that referenced
this issue
Aug 29, 2019
i536.scala previously compiled since the type argument was inferred to be Nothing. But that inference is useless; it just hides a runtime failure. The issue scala#536 only complained that the compiler crashed, so having a negative outcome is permissible.
odersky
added a commit
to dotty-staging/dotty
that referenced
this issue
Aug 29, 2019
i536.scala previously compiled since the type argument was inferred to be Nothing. But that inference is useless; it just hides a runtime failure. The issue scala#536 only complained that the compiler crashed, so having a negative outcome is permissible.
odersky
added a commit
to dotty-staging/dotty
that referenced
this issue
Aug 29, 2019
If the result of a covariant type variable interpolation would be a bottom type, wait instead. This could make the variable be inferred to its upper bound after all, if we do not need a fully instantiated type right away. This makes a difference for indentation whereever we have a situation like this: ``` def foo: T = bla.asInstanceOf ``` With indentation on, this is now equivalent to ``` def foo: T = { bla.asInstanceof } ``` This means there is now an added opportunity for an interpolation step, of the asInstanceOf, which would go downwards to Nothing. So indentation changes the inferred type, which is very bad. With the commit the problem is avoided. Two tests are reclassified: i536.scala previously compiled since the type argument was inferred to be Nothing. But that inference is useless; it just hides a runtime failure. The issue scala#536 only complained that the compiler crashed, so having a negative outcome is permissible. enum-interop is similar except that the example makes even less sense and compiles only because Nothing was inferred by accedient.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Boom:
The text was updated successfully, but these errors were encountered: