|
Scala example source code file (AbstractReporter.scala)
The Scala AbstractReporter.scala source code/* NSC -- new Scala compiler * Copyright 2002-2011 LAMP/EPFL * @author Martin Odersky */ package scala.tools.nsc package reporters import scala.collection.mutable.HashMap import scala.tools.nsc.Settings import scala.tools.nsc.util.Position /** * This reporter implements filtering. */ abstract class AbstractReporter extends Reporter { val settings: Settings def display(pos: Position, msg: String, severity: Severity): Unit def displayPrompt(): Unit private val positions = new HashMap[Position, Severity] override def reset() { super.reset positions.clear } private def isVerbose = settings.verbose.value private def noWarnings = settings.nowarnings.value private def isPromptSet = settings.prompt.value protected def info0(pos: Position, msg: String, _severity: Severity, force: Boolean) { val severity = if (settings.fatalWarnings.value && _severity == WARNING) ERROR else _severity if (severity == INFO) { if (isVerbose || force) display(pos, msg, severity) } else { val hidden = testAndLog(pos, severity) if (severity == WARNING && noWarnings) () else { if (!hidden || isPromptSet) display(pos, msg, severity) if (isPromptSet) displayPrompt } } } /** Logs a position and returns true if it was already logged. * @note Two positions are considered identical for logging if they have the same point. */ private def testAndLog(pos: Position, severity: Severity): Boolean = pos != null && pos.isDefined && { val fpos = pos.focus (positions get fpos) match { case Some(level) if level >= severity => true case _ => positions += (fpos -> severity) ; false } } } Other Scala examples (source code examples)Here is a short list of links related to this Scala AbstractReporter.scala source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.