summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/typechecker/TypeDiagnostics.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/TypeDiagnostics.scala')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/TypeDiagnostics.scala10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/TypeDiagnostics.scala b/src/compiler/scala/tools/nsc/typechecker/TypeDiagnostics.scala
index be576289f6..d5bb546b7f 100644
--- a/src/compiler/scala/tools/nsc/typechecker/TypeDiagnostics.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/TypeDiagnostics.scala
@@ -39,6 +39,8 @@ trait TypeDiagnostics {
import definitions._
import global.typer.infer
+ private def currentUnit = currentRun.currentUnit
+
/** It can be quite difficult to know which of the many functions called "error"
* is being called at any given point in the compiler. To alleviate this I am
* renaming such functions inside this trait based on where it originated.
@@ -53,6 +55,14 @@ trait TypeDiagnostics {
def noErroneousSyms(syms: Symbol*) = syms forall (x => !x.isErroneous)
def noErroneousTrees(trees: Tree*) = trees forall (x => !x.isErroneous)
+ /** For errors which are artifacts of the implementation: such messages
+ * indicate that the restriction may be lifted in the future.
+ */
+ def restrictionWarning(pos: Position, unit: CompilationUnit, msg: String): Unit =
+ unit.warning(pos, "Implementation restriction: " + msg)
+ def restrictionError(pos: Position, unit: CompilationUnit, msg: String): Unit =
+ unit.error(pos, "Implementation restriction: " + msg)
+
/** A map of Positions to addendums - if an error involves a position in
* the map, the addendum should also be printed.
*/