summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/compiler/scala/tools/nsc/transform/PostErasure.scala2
-rw-r--r--test/files/run/t6090.scala6
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)))
+}