aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/scala/async/internal/AsyncMacro.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/scala/async/internal/AsyncMacro.scala')
-rw-r--r--src/main/scala/scala/async/internal/AsyncMacro.scala17
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
+ }
+ }
+
}