summaryrefslogtreecommitdiff
path: root/test/files/run
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan@lightbend.com>2017-01-10 14:19:02 -0800
committerGitHub <noreply@github.com>2017-01-10 14:19:02 -0800
commit36967321c7a8a99cab2f9f1c4c0c46f09d3d34a6 (patch)
tree6a4608a54de0fafb4a9fd9eb52bb4829f9a6dadd /test/files/run
parentfac487e397c36395ee91c3b725aad6a8050cc0ad (diff)
parent9165886936133d62a9f190a1a7587fbb889ecf9a (diff)
downloadscala-36967321c7a8a99cab2f9f1c4c0c46f09d3d34a6.tar.gz
scala-36967321c7a8a99cab2f9f1c4c0c46f09d3d34a6.tar.bz2
scala-36967321c7a8a99cab2f9f1c4c0c46f09d3d34a6.zip
Merge pull request #5632 from adriaanm/ticket/9114
SI-9114 Fix crasher in pattern matcher with type aliases
Diffstat (limited to 'test/files/run')
-rw-r--r--test/files/run/t9114.scala31
1 files changed, 31 insertions, 0 deletions
diff --git a/test/files/run/t9114.scala b/test/files/run/t9114.scala
new file mode 100644
index 0000000000..656a5c7d8d
--- /dev/null
+++ b/test/files/run/t9114.scala
@@ -0,0 +1,31 @@
+import annotation.unchecked
+
+class Test {
+ trait Two[A, B]
+ type One[A] = Two[A,A]
+ class View extends One[Any]
+
+ def checkAny(x: Some[One[Any]]) = x match { // okay
+ case Some(_: View) => true
+ case _ => false
+ }
+ def checkAbstract[A](x: Some[One[A]]) = x match { // okay
+ case Some(_: View) => true
+ case _ => false
+ }
+
+ def checkExistential(x: Some[One[_]]) = x match {
+ case Some(_: View) => true // compiler crash
+ case _ => false
+ }
+}
+
+object Test {
+ def main(args: Array[String]): Unit = {
+ val t1 = new Test
+ val t2 = new Test
+ assert(t1.checkAny(Some(new t1.View)))
+ assert(t1.checkAbstract(Some(new t1.View)))
+ assert(t1.checkExistential(Some(new t1.View)))
+ }
+}