summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/typechecker/Macros.scala
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@typesafe.com>2014-07-10 15:30:28 +0200
committerAdriaan Moors <adriaan.moors@typesafe.com>2014-07-17 15:50:08 +0200
commitecda1010416305e5d5cbf9ba0c7f90ddee8a9737 (patch)
treebf39c2a81f56fddbedc8fd17ecb6a1e6a7aad931 /src/compiler/scala/tools/nsc/typechecker/Macros.scala
parentdda3f241e7c47d13710be6a7e1ea9d5ef69709b2 (diff)
downloadscala-ecda1010416305e5d5cbf9ba0c7f90ddee8a9737.tar.gz
scala-ecda1010416305e5d5cbf9ba0c7f90ddee8a9737.tar.bz2
scala-ecda1010416305e5d5cbf9ba0c7f90ddee8a9737.zip
Make more explicit that TypeError is being thrown.
`typer.TyperErrorGen.MacroCantExpandIncompatibleMacrosError` throws because the type checker it uses is at `NoContext`, which throws by default... This default is bad and is going to change, so make this code independent of that future sanity. TODO: don't use mutable state to determine position for the error
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/Macros.scala')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Macros.scala3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Macros.scala b/src/compiler/scala/tools/nsc/typechecker/Macros.scala
index 9c22688581..66152a6ac2 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Macros.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Macros.scala
@@ -226,7 +226,8 @@ trait Macros extends MacroRuntimes with Traces with Helpers {
val Apply(_, pickledPayload) = wrapped
val payload = pickledPayload.map{ case Assign(k, v) => (unpickleAtom(k), unpickleAtom(v)) }.toMap
- import typer.TyperErrorGen._
+ // TODO: refactor error handling: fail always throws a TypeError,
+ // and uses global state (analyzer.lastTreeToTyper) to determine the position for the error
def fail(msg: String) = MacroCantExpandIncompatibleMacrosError(msg)
def unpickle[T](field: String, clazz: Class[T]): T = {
def failField(msg: String) = fail(s"$field $msg")