Aladdin - Scala Bugtracking
[#193] project: compiler priority: medium category: bug
submitter assigned to status date submitted
Philippe Michel fixed 2003-10-10 13:58:46.0
subject Problem with == and != in GenJVM
code
trait Test {
  def fun1(x: Int, y: Int): Unit = {
    (x: Any) == y;
    (x     ) == y;
    (x: Any) != y;
    (x     ) != y;
    ()
  }
  def fun2(x: Object, y: Int): Unit = {
    (x: Any) == y;
    (x     ) == y;
    (x: Any) != y;
    (x     ) != y;
    ()
  }
  def fun3(x: Int, y: Object): Unit = {
    (x: Any) == y;
    (x     ) == y;
    (x: Any) != y;
    (x     ) != y;
    ()
  }
  def fun4(x: Object, y: Object): Unit = {
    (x: Any) == y;
    (x     ) == y;
    (x: Any) != y;
    (x     ) != y;
    ()
  }
}
what happened
Exception in thread "main" java.lang.AssertionError: int -> scala.Int
	at scalac.backend.jvm.GenJVM.genWidenConversion(GenJVM.java:927)
	at scalac.backend.jvm.GenJVM.genLoad(GenJVM.java:559)
	at scalac.backend.jvm.GenJVM.genCompPrim(GenJVM.java:827)
	at scalac.backend.jvm.GenJVM.genCond(GenJVM.java:673)
	at scalac.backend.jvm.GenJVM.genLoad(GenJVM.java:305)
	at scalac.backend.jvm.GenJVM.gen(GenJVM.java:191)
	at scalac.backend.jvm.GenJVM.genLoad(GenJVM.java:224)
	at scalac.backend.jvm.GenJVM.gen(GenJVM.java:165)
	at scalac.backend.jvm.GenJVM.gen(GenJVM.java:199)
	at scalac.backend.jvm.GenJVM.gen(GenJVM.java:143)
	at scalac.backend.jvm.GenJVM.gen(GenJVM.java:138)
	at scalac.backend.jvm.GenJVM.translate(GenJVM.java:110)
	at scalac.backend.jvm.GenJVMPhase.apply(GenJVMPhase.java:45)
	at scalac.Global.compile(Global.java:293)
	at scalac.Global.compile(Global.java:266)
	at scalac.Main.main(Main.java:32)
what expected

no error.

[back to overview]
Changes of this bug report
Philippe  edited on  2003-10-10 14:19:27.0

Added title and category. Improved test file.

Philippe  edited on  2003-10-15 15:14:46.0

Fixed GenJVM to handle all == and != symbols.