summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2014-05-09 15:27:32 +0200
committerJason Zaugg <jzaugg@gmail.com>2014-05-09 15:27:32 +0200
commit7523ed37d5a4eeb2664f9ddf2cad09b70aa81877 (patch)
treeee5196ad88d0be934e08441205acacafe6f39dd0 /src
parent7bac372a85e5a06ec147ec648caab76df704d8dc (diff)
parent1ba2d7bb967ded0c19ff2cf966c492adc12292bb (diff)
downloadscala-7523ed37d5a4eeb2664f9ddf2cad09b70aa81877.tar.gz
scala-7523ed37d5a4eeb2664f9ddf2cad09b70aa81877.tar.bz2
scala-7523ed37d5a4eeb2664f9ddf2cad09b70aa81877.zip
Merge pull request #3719 from retronym/ticket/8546
SI-8546 Pattern matcher analysis foiled by over-widening
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/transform/patmat/MatchAnalysis.scala5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/patmat/MatchAnalysis.scala b/src/compiler/scala/tools/nsc/transform/patmat/MatchAnalysis.scala
index 2893cbdf45..894f959319 100644
--- a/src/compiler/scala/tools/nsc/transform/patmat/MatchAnalysis.scala
+++ b/src/compiler/scala/tools/nsc/transform/patmat/MatchAnalysis.scala
@@ -149,14 +149,15 @@ trait TreeAndTypeAnalysis extends Debugging {
object typeArgsToWildcardsExceptArray extends TypeMap {
// SI-6771 dealias would be enough today, but future proofing with the dealiasWiden.
// See neg/t6771b.scala for elaboration
- def apply(tp: Type): Type = tp.dealiasWiden match {
+ def apply(tp: Type): Type = tp.dealias match {
case TypeRef(pre, sym, args) if args.nonEmpty && (sym ne ArrayClass) =>
TypeRef(pre, sym, args map (_ => WildcardType))
case _ =>
mapOver(tp)
}
}
- debug.patmatResult(s"checkableType($tp)")(typeArgsToWildcardsExceptArray(tp))
+ val result = typeArgsToWildcardsExceptArray(tp)
+ debug.patmatResult(s"checkableType($tp)")(result)
}
// a type is "uncheckable" (for exhaustivity) if we don't statically know its subtypes (i.e., it's unsealed)