summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/transform/patmat/MatchAnalysis.scala
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2016-01-27 19:01:25 +1000
committerJason Zaugg <jzaugg@gmail.com>2016-01-29 11:10:30 +1000
commit1f4d8945f310ad803d7c165e0f53baf3c9194cf6 (patch)
treed911b6ee46c868352624f19fdf7c4b0b98bbbebe /src/compiler/scala/tools/nsc/transform/patmat/MatchAnalysis.scala
parent79a52e6807d2797dee12bab1730765441a0e222d (diff)
downloadscala-1f4d8945f310ad803d7c165e0f53baf3c9194cf6.tar.gz
scala-1f4d8945f310ad803d7c165e0f53baf3c9194cf6.tar.bz2
scala-1f4d8945f310ad803d7c165e0f53baf3c9194cf6.zip
SI-9398 Treat case classes as one-element ADTs for analysis
Currently, exhaustivity analysis only runs for scrutinees with a sealed type. This commit treats any case class as a one-element, sealed type to enable additional analysis, such as in the new test case.
Diffstat (limited to 'src/compiler/scala/tools/nsc/transform/patmat/MatchAnalysis.scala')
-rw-r--r--src/compiler/scala/tools/nsc/transform/patmat/MatchAnalysis.scala2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/patmat/MatchAnalysis.scala b/src/compiler/scala/tools/nsc/transform/patmat/MatchAnalysis.scala
index 4286f69c96..ab3b25e76b 100644
--- a/src/compiler/scala/tools/nsc/transform/patmat/MatchAnalysis.scala
+++ b/src/compiler/scala/tools/nsc/transform/patmat/MatchAnalysis.scala
@@ -176,6 +176,8 @@ trait TreeAndTypeAnalysis extends Debugging {
filterChildren(subclasses)
})
}
+ case sym if sym.isCase =>
+ List(List(tp))
case sym =>
debug.patmat("enum unsealed "+ ((tp, sym, sym.isSealed, isPrimitiveValueClass(sym))))