summaryrefslogtreecommitdiff
path: root/src/compiler
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2014-02-11 17:19:21 +0100
committerJason Zaugg <jzaugg@gmail.com>2014-02-11 17:19:21 +0100
commit64ad11b49bd7630d596e950953a5b15d3abf1689 (patch)
tree1b0d7bfa6f7a15e1a66cf8fb4c98fe2353e0777c /src/compiler
parent4f660d8c1282398655da24211f3c74af33ec8a6b (diff)
parent2606becba91fa3d31cdeb3069a5a35b0163a4cde (diff)
downloadscala-64ad11b49bd7630d596e950953a5b15d3abf1689.tar.gz
scala-64ad11b49bd7630d596e950953a5b15d3abf1689.tar.bz2
scala-64ad11b49bd7630d596e950953a5b15d3abf1689.zip
Merge pull request #3495 from xeno-by/ticket/8209
changes the order of whitebox typechecks. yes, again.
Diffstat (limited to 'src/compiler')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Macros.scala8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Macros.scala b/src/compiler/scala/tools/nsc/typechecker/Macros.scala
index cf82d6baac..677c94e063 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Macros.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Macros.scala
@@ -620,9 +620,11 @@ trait Macros extends FastTrack with MacroRuntimes with Traces with Helpers {
val expanded1 = atPos(enclosingMacroPosition.makeTransparent)(Typed(expanded0, TypeTree(innerPt)))
typecheck("blackbox typecheck", expanded1, outerPt)
} else {
- val expanded1 = expanded0
- val expanded2 = typecheck("whitebox typecheck #1", expanded1, outerPt)
- typecheck("whitebox typecheck #2", expanded2, innerPt)
+ // whitebox expansions need to be typechecked against WildcardType first in order to avoid SI-6992 and SI-8048
+ // then we typecheck against innerPt, not against outerPt in order to prevent SI-8209
+ val expanded1 = typecheck("whitebox typecheck #0", expanded0, WildcardType)
+ val expanded2 = typecheck("whitebox typecheck #1", expanded1, innerPt)
+ typecheck("whitebox typecheck #2", expanded2, outerPt)
}
}
override def onDelayed(delayed: Tree) = {