From 19841a50aa05a02f1ce3854f9ef1b9d1ee71fdbf Mon Sep 17 00:00:00 2001 From: Tom Grigg Date: Fri, 18 Dec 2020 13:53:50 -0800 Subject: [PATCH] Add regression tests for #7375 --- tests/pos/i7375.scala | 23 +++++++++++++++++++++++ tests/run/i7375.scala | 6 ++++++ 2 files changed, 29 insertions(+) create mode 100644 tests/pos/i7375.scala create mode 100644 tests/run/i7375.scala diff --git a/tests/pos/i7375.scala b/tests/pos/i7375.scala new file mode 100644 index 000000000000..9da548f99ce7 --- /dev/null +++ b/tests/pos/i7375.scala @@ -0,0 +1,23 @@ +trait Entity[M, T, P]: + extension (me: M) def receive(sender: T)(msg: P)(using Entity[T, M, P]): Unit + extension (me: M) def name(): String + +class GreetingPerson(private val name: String) + +object GreetingPerson: + given GreetingPersonEntity: Entity[GreetingPerson, GreetedPerson, String] with + extension (me: GreetingPerson) def receive(sender: GreetedPerson)(msg: String)(using Entity[GreetedPerson, GreetingPerson, String]): Unit = + println(f"Thanks for saying $msg, ${sender.name()}") + + extension (me: GreetingPerson) def name() = + me.name + +class GreetedPerson(private val name: String) + +object GreetedPerson: + given GreetedPersonEntity: Entity[GreetedPerson, GreetingPerson, String] with + extension (me: GreetedPerson) def receive(sender: GreetingPerson)(msg: String)(using Entity[GreetingPerson, GreetedPerson, String]): Unit = + println(f"Thanks for saying $msg, ${sender.name()}") + + extension (me: GreetedPerson) def name() = + me.name diff --git a/tests/run/i7375.scala b/tests/run/i7375.scala new file mode 100644 index 000000000000..f94e6cc2daa8 --- /dev/null +++ b/tests/run/i7375.scala @@ -0,0 +1,6 @@ +class Foo(private val name: String) + +extension (f: Foo) def name() = "bar" + +@main def Test = + assert(Foo("foo").name() == "bar")