diff options
-rw-r--r-- | src/compiler/scala/tools/nsc/transform/PostErasure.scala | 2 | ||||
-rw-r--r-- | test/files/run/t6090.scala | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/PostErasure.scala b/src/compiler/scala/tools/nsc/transform/PostErasure.scala index 151bc66a79..479bc2292e 100644 --- a/src/compiler/scala/tools/nsc/transform/PostErasure.scala +++ b/src/compiler/scala/tools/nsc/transform/PostErasure.scala @@ -52,7 +52,7 @@ trait PostErasure extends InfoTransform with TypingTransformers { List(Apply(Select(New(tpt2), nme.CONSTRUCTOR), List(arg2)))) if atPhase(currentRun.erasurePhase) { tpt1.tpe.typeSymbol.isDerivedValueClass && - (cmp == nme.EQ || cmp == nme.NE) && + (sel.symbol == Object_== || sel.symbol == Object_!=) && tpt2.tpe.typeSymbol == tpt1.tpe.typeSymbol } => val result = Apply(Select(arg1, cmp) setPos sel.pos, List(arg2)) setPos tree.pos diff --git a/test/files/run/t6090.scala b/test/files/run/t6090.scala new file mode 100644 index 0000000000..e7dbb36a05 --- /dev/null +++ b/test/files/run/t6090.scala @@ -0,0 +1,6 @@ +class X { def ==(other: X) = true } +class V(val x: X) extends AnyVal +object Test extends { + def main(args: Array[String]) = + assert((new V(new X) == new V(new X))) +} |