diff options
author | Adriaan Moors <adriaan.moors@typesafe.com> | 2014-07-10 15:30:28 +0200 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2014-07-17 15:50:08 +0200 |
commit | ecda1010416305e5d5cbf9ba0c7f90ddee8a9737 (patch) | |
tree | bf39c2a81f56fddbedc8fd17ecb6a1e6a7aad931 /src/compiler/scala/tools/nsc/typechecker/Macros.scala | |
parent | dda3f241e7c47d13710be6a7e1ea9d5ef69709b2 (diff) | |
download | scala-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.scala | 3 |
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") |