diff options
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/TypeDiagnostics.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/TypeDiagnostics.scala | 10 |
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. */ |