diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2015-08-31 13:55:00 +1000 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2015-09-21 14:00:10 +1000 |
commit | 54445becc8dc035898c39b965e54bbaed80d0b98 (patch) | |
tree | 2affe5b237107b32e1877a8fa1d37a01f20708da /test/files | |
parent | 955ce9f92b8611cacd355cabe8b4c1ae6ee0ea05 (diff) | |
download | scala-54445becc8dc035898c39b965e54bbaed80d0b98.tar.gz scala-54445becc8dc035898c39b965e54bbaed80d0b98.tar.bz2 scala-54445becc8dc035898c39b965e54bbaed80d0b98.zip |
SI-7850 Additional tests for name based patmat
Found these in an old review branch of mine.
Diffstat (limited to 'test/files')
-rw-r--r-- | test/files/run/t7850c.scala | 11 | ||||
-rw-r--r-- | test/files/run/t7850d.scala | 17 |
2 files changed, 28 insertions, 0 deletions
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) + } +} |