diff options
author | Sean McDirmid <sean.mcdirmid@gmail.com> | 2005-12-02 15:34:31 +0000 |
---|---|---|
committer | Sean McDirmid <sean.mcdirmid@gmail.com> | 2005-12-02 15:34:31 +0000 |
commit | d4a7e14e41a918cd6de0a5efc1002c9d87fb7708 (patch) | |
tree | d284894da803392db21b910ab1518c5be2153976 /sources/scala/tools/nsc/reporters/AbstractReporter.scala | |
parent | 4720d45a832b3a8c818ae81cb0a15353fd16e372 (diff) | |
download | scala-d4a7e14e41a918cd6de0a5efc1002c9d87fb7708.tar.gz scala-d4a7e14e41a918cd6de0a5efc1002c9d87fb7708.tar.bz2 scala-d4a7e14e41a918cd6de0a5efc1002c9d87fb7708.zip |
Revamped reporter classes to make them more fri...
Revamped reporter classes to make them more friendly with the plugin.
Diffstat (limited to 'sources/scala/tools/nsc/reporters/AbstractReporter.scala')
-rw-r--r-- | sources/scala/tools/nsc/reporters/AbstractReporter.scala | 45 |
1 files changed, 22 insertions, 23 deletions
diff --git a/sources/scala/tools/nsc/reporters/AbstractReporter.scala b/sources/scala/tools/nsc/reporters/AbstractReporter.scala index b85fde78ca..c2953e0a5c 100644 --- a/sources/scala/tools/nsc/reporters/AbstractReporter.scala +++ b/sources/scala/tools/nsc/reporters/AbstractReporter.scala @@ -7,37 +7,36 @@ // $Id$ package scala.tools.nsc.reporters; -import java.util.HashSet; +import scala.collection.mutable.HashSet; import scala.tools.nsc.util.Position; /** - * This abstract class implements most aspects of a Reporter, only how - * things are displayed has to be implemented in subclasses. + * This reporter implements filtering. */ abstract class AbstractReporter extends Reporter { - private val positions = new HashSet(); + private val positions = new HashSet[Position](); - def displayInfo (pos : Position, msg : String) : Unit; - def displayWarning(pos : Position, msg : String) : Unit; - def displayError (pos : Position, msg : String) : Unit; + def display(pos : Position, msg : String, severity : Severity) : Unit; + var prompt : Boolean = false; + var verbose : Boolean = false; + var nowarn : Boolean = false; def displayPrompt : Unit; // XXX: while is pos ignored? - def info(pos : Position, msg : String, force : Boolean) : Unit = - if (force || verbose) displayInfo(pos, msg); - - def warning(pos : Position, msg : String) : Unit = { - val hidden = testAndLog(pos); - if (nowarn) return; - if (!hidden || prompt) displayWarning(pos, msg); - if (!hidden) warningsx = warningsx + 1; - if (prompt) displayPrompt; - } - def error(pos : Position, msg : String) : Unit = { - val hidden = testAndLog(pos); - if (!hidden || prompt) displayError(pos, msg); - if (!hidden) errorsx = errorsx + 1; - if (prompt) displayPrompt; + protected def info0(pos : Position, msg : String, severity : Severity, force : Boolean) : Unit = severity match { + case INFO => if (force || verbose) display(pos, msg, severity); + case WARNING => { + val hidden = testAndLog(pos); + if (!nowarn) { + if (!hidden || prompt) display(pos, msg, severity); + if (prompt) displayPrompt; + } + } + case ERROR => { + val hidden = testAndLog(pos); + if (!hidden || prompt) display(pos, msg, severity); + if (prompt) displayPrompt; + } } //######################################################################## @@ -48,7 +47,7 @@ abstract class AbstractReporter extends Reporter { if (pos == null) return false; if (pos.column == 0) return false; if (positions.contains(pos)) return true; - positions.add(pos); + positions += (pos); return false; } |