From 54445becc8dc035898c39b965e54bbaed80d0b98 Mon Sep 17 00:00:00 2001 From: Jason Zaugg Date: Mon, 31 Aug 2015 13:55:00 +1000 Subject: SI-7850 Additional tests for name based patmat Found these in an old review branch of mine. --- test/files/run/t7850c.scala | 11 +++++++++++ test/files/run/t7850d.scala | 17 +++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 test/files/run/t7850c.scala create mode 100644 test/files/run/t7850d.scala (limited to 'test') diff --git a/test/files/run/t7850c.scala b/test/files/run/t7850c.scala new file mode 100644 index 0000000000..25b9c0028d --- /dev/null +++ b/test/files/run/t7850c.scala @@ -0,0 +1,11 @@ +// Testing that isEmpty and get are viewed with `memberType` from `Casey1`. +trait T[A, B >: Null] { def isEmpty: A = false.asInstanceOf[A]; def get: B = null} +class Casey1() extends T[Boolean, String] +object Casey1 { def unapply(a: Casey1) = a } + +object Test { + def main(args: Array[String]) { + val c @ Casey1(x) = new Casey1() + assert(x == c.get) + } +} diff --git a/test/files/run/t7850d.scala b/test/files/run/t7850d.scala new file mode 100644 index 0000000000..ccc98f1bcc --- /dev/null +++ b/test/files/run/t7850d.scala @@ -0,0 +1,17 @@ +// Testing that the ad-hoc overload resolution of isEmpty/get discards +// parameter-accepting variants +trait T[A, B >: Null] { def isEmpty: A = false.asInstanceOf[A]; def get: B = null} +class Casey1(val a: Int) { + def isEmpty: Boolean = false + def isEmpty(x: Int): Boolean = ??? + def get: Int = a + def get(x: Int): String = ??? +} +object Casey1 { def unapply(a: Casey1) = a } + +object Test { + def main(args: Array[String]) { + val c @ Casey1(x) = new Casey1(0) + assert(x == c.get) + } +} -- cgit v1.2.3