diff options
Diffstat (limited to 'src/main/scala/scala/async/internal/AsyncMacro.scala')
-rw-r--r-- | src/main/scala/scala/async/internal/AsyncMacro.scala | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/main/scala/scala/async/internal/AsyncMacro.scala b/src/main/scala/scala/async/internal/AsyncMacro.scala index ee49923..d030367 100644 --- a/src/main/scala/scala/async/internal/AsyncMacro.scala +++ b/src/main/scala/scala/async/internal/AsyncMacro.scala @@ -32,4 +32,21 @@ private[async] trait AsyncMacro lazy val macroPos = macroApplication.pos.makeTransparent def atMacroPos(t: global.Tree) = global.atPos(macroPos)(t) + def suppressExpansion() { + // Have your cake : Scala IDE sees original trees and hyperlinking, etc within async blocks "Just Works" + // Eat it too : (domain specific errors like "unsupported use of await" + // + // TODO roll this idea back into scala/scala + def suppress(globalOrAnalzer: Any) = { + type Suppress = { def suppressMacroExpansion(a: Object): Object } + globalOrAnalzer.asInstanceOf[Suppress].suppressMacroExpansion(macroApplication) + } + try { + suppress(global) // 2.10.x + } catch { + case _: NoSuchMethodException => + suppress(global.analyzer) // 2.11 + } + } + } |