diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2013-12-30 07:24:51 -0800 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2013-12-30 07:24:51 -0800 |
commit | fbbe7cc1773fad2b261f65b1381f94532d252f6f (patch) | |
tree | 7c79981852579c47a34c90704f90108bdf1adbc6 /src/compiler/scala/tools/nsc/typechecker/Macros.scala | |
parent | 991cd1690380cda60a4416f43b8f31777eb1e640 (diff) | |
parent | bce97058c4733f4c7bfac473db6bf378942900b8 (diff) | |
download | scala-fbbe7cc1773fad2b261f65b1381f94532d252f6f.tar.gz scala-fbbe7cc1773fad2b261f65b1381f94532d252f6f.tar.bz2 scala-fbbe7cc1773fad2b261f65b1381f94532d252f6f.zip |
Merge pull request #3288 from xeno-by/topic/f-interpolator
makes boxity of fast track macros configurable
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/Macros.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Macros.scala | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Macros.scala b/src/compiler/scala/tools/nsc/typechecker/Macros.scala index 1deb74640c..0d46a96b81 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Macros.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Macros.scala @@ -260,7 +260,11 @@ trait Macros extends FastTrack with MacroRuntimes with Traces with Helpers { } def isBlackbox(expandee: Tree): Boolean = isBlackbox(dissectApplied(expandee).core.symbol) - def isBlackbox(macroDef: Symbol): Boolean = loadMacroImplBinding(macroDef).map(_.isBlackbox).getOrElse(false) + def isBlackbox(macroDef: Symbol): Boolean = { + val fastTrackBoxity = fastTrack.get(macroDef).map(_.isBlackbox) + val bindingBoxity = loadMacroImplBinding(macroDef).map(_.isBlackbox) + fastTrackBoxity orElse bindingBoxity getOrElse false + } def computeMacroDefTypeFromMacroImplRef(macroDdef: DefDef, macroImplRef: Tree): Type = { macroImplRef match { @@ -634,7 +638,7 @@ trait Macros extends FastTrack with MacroRuntimes with Traces with Helpers { } if (isBlackbox(expandee)) { - val expanded1 = atPos(enclosingMacroPosition.focus)(Typed(expanded0, TypeTree(innerPt))) + val expanded1 = atPos(enclosingMacroPosition.makeTransparent)(Typed(expanded0, TypeTree(innerPt))) typecheck("blackbox typecheck", expanded1, outerPt) } else { val expanded1 = expanded0 |