summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@epfl.ch>2012-08-08 09:57:04 -0700
committerAdriaan Moors <adriaan.moors@epfl.ch>2012-08-08 09:57:04 -0700
commitadbdb18d93374b7c68f77649cc7ec4c3b9e33f4b (patch)
tree235d6a4085be43973453678e41d8e3e11cfccb2a /src
parent589ac216d97d7bd2a03dda84a71622459e10a8f7 (diff)
parent52fa311f885e20b05178bf28553f3952ba8a5df7 (diff)
downloadscala-adbdb18d93374b7c68f77649cc7ec4c3b9e33f4b.tar.gz
scala-adbdb18d93374b7c68f77649cc7ec4c3b9e33f4b.tar.bz2
scala-adbdb18d93374b7c68f77649cc7ec4c3b9e33f4b.zip
Merge pull request #1088 from adriaanm/ticket-6205
SI-6205 make pt fully defined before inferTypedPattern
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Typers.scala7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
index 769648aa74..d05368bd5f 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
@@ -5052,10 +5052,11 @@ trait Typers extends Modes with Adaptations with Tags {
if (isPatternMode) {
val uncheckedTypeExtractor = extractorForUncheckedType(tpt.pos, tptTyped.tpe)
- val ownType = inferTypedPattern(tptTyped, tptTyped.tpe, pt, canRemedy = uncheckedTypeExtractor.nonEmpty)
- // println(s"Typed($expr, ${tpt.tpe}) : $pt --> $ownType (${isFullyDefined(ownType)}, ${makeFullyDefined(ownType)})")
+
// make fully defined to avoid bounded wildcard types that may be in pt from calling dropExistential (SI-2038)
- treeTyped setType (if (isFullyDefined(ownType)) ownType else makeFullyDefined(ownType)) //ownType
+ val ptDefined = if (isFullyDefined(pt)) pt else makeFullyDefined(pt)
+ val ownType = inferTypedPattern(tptTyped, tptTyped.tpe, ptDefined, canRemedy = uncheckedTypeExtractor.nonEmpty)
+ treeTyped setType ownType
uncheckedTypeExtractor match {
case None => treeTyped