aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorliu fengyun <liu@fengy.me>2017-04-13 14:32:05 +0200
committerliu fengyun <liu@fengy.me>2017-04-13 14:32:05 +0200
commitcf37737f56db7bc2f7429f78328dc5eea1716356 (patch)
treef5d643fd2e0f3b12cdcb339df112763645eae0be
parent15e8d83a377398c9c13a5319a23645d10b14579a (diff)
downloaddotty-cf37737f56db7bc2f7429f78328dc5eea1716356.tar.gz
dotty-cf37737f56db7bc2f7429f78328dc5eea1716356.tar.bz2
dotty-cf37737f56db7bc2f7429f78328dc5eea1716356.zip
fix #2253: avoid exception with refinement types
-rw-r--r--compiler/src/dotty/tools/dotc/transform/patmat/Space.scala1
-rw-r--r--tests/patmat/i2253.scala7
2 files changed, 8 insertions, 0 deletions
diff --git a/compiler/src/dotty/tools/dotc/transform/patmat/Space.scala b/compiler/src/dotty/tools/dotc/transform/patmat/Space.scala
index 229545a57..fe2983896 100644
--- a/compiler/src/dotty/tools/dotc/transform/patmat/Space.scala
+++ b/compiler/src/dotty/tools/dotc/transform/patmat/Space.scala
@@ -537,6 +537,7 @@ class SpaceEngine(implicit ctx: Context) extends SpaceLogic {
tp.refinedName,
tpb.derivedTypeBounds(follow(lo, false), follow(hi, true))
)
+ case tp => tp
}
case _ => tp
}
diff --git a/tests/patmat/i2253.scala b/tests/patmat/i2253.scala
new file mode 100644
index 000000000..8394a86df
--- /dev/null
+++ b/tests/patmat/i2253.scala
@@ -0,0 +1,7 @@
+sealed trait S
+object O extends S
+trait T
+
+class Test {
+ def m(s: S { val x: Int }) = s match { case _: T => ; }
+} \ No newline at end of file