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
Contradiction: had an empty possible set indicating an uninitialized location #8306
Comments
Imported From: https://issues.scala-lang.org/browse/SI-8306?orig=1 |
@gkossakowski said: |
@retronym said: You might also be able to workaround (to find other problems) with |
@gkossakowski said: class Si8306 {
def foo: Int = 123
lazy val extension: Int =
foo match {
case idx if idx != -1 => 15
case _ => 17
}
} Lazy val is important here. If I change it to val or def then the crash is gone. |
@magarciaEPFL said: |
@gkossakowski said: |
@retronym said: (x1: Int) match {
case _ => if (x1.!=(-1)) 15 else17
} That's enough to lead to an empty set of integer tags in the SWITCH in the icode tree, which trips the assertion in constant optimization. We could change one or more of patmat, genicode, and constopt to improve the situation. |
@gkossakowski said: |
@adriaanm said: |
When compiling
scala-io
compiler crashes with:It can be reproduced with dbuild using this branch: https://github.com/gkossakowski/community-builds/tree/play
The text was updated successfully, but these errors were encountered: