diff --git a/tests/neg/i14544.scala b/tests/neg/i14544.scala new file mode 100644 index 000000000000..f77133b63e00 --- /dev/null +++ b/tests/neg/i14544.scala @@ -0,0 +1,13 @@ +import scala.language.strictEquality + +case class MyClass[A](value: String)(val a: A) derives CanEqual + +class Something {} + +val a = MyClass[Something]("some")(new Something()) +val b = MyClass[Something]("some")(new Something()) +val c = new Something() +val d = new Something() + +def test1 = println(a == b) // error +def test2 = println(c == d) // error diff --git a/tests/pos/i14544.scala b/tests/pos/i14544.scala new file mode 100644 index 000000000000..bcf28019bf46 --- /dev/null +++ b/tests/pos/i14544.scala @@ -0,0 +1,14 @@ +import scala.language.strictEquality + +case class MyClass[A](value: String)(val a: A) derives CanEqual + +class Something {} +given CanEqual[Something, Something] = CanEqual.derived + +val a = MyClass[Something]("some")(new Something()) +val b = MyClass[Something]("some")(new Something()) +val c = new Something() +val d = new Something() + +def test1 = println(a == b) +def test2 = println(c == d)