aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/reporting/diagnostic/MessageContainer.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/dotty/tools/dotc/reporting/diagnostic/MessageContainer.scala')
-rw-r--r--src/dotty/tools/dotc/reporting/diagnostic/MessageContainer.scala74
1 files changed, 0 insertions, 74 deletions
diff --git a/src/dotty/tools/dotc/reporting/diagnostic/MessageContainer.scala b/src/dotty/tools/dotc/reporting/diagnostic/MessageContainer.scala
deleted file mode 100644
index 7fd50bfdc..000000000
--- a/src/dotty/tools/dotc/reporting/diagnostic/MessageContainer.scala
+++ /dev/null
@@ -1,74 +0,0 @@
-package dotty.tools
-package dotc
-package reporting
-package diagnostic
-
-import util.SourcePosition
-import core.Contexts.Context
-
-import java.util.Optional
-
-object MessageContainer {
- val nonSensicalStartTag = "<nonsensical>"
- val nonSensicalEndTag = "</nonsensical>"
-
- implicit class MessageContext(val c: Context) extends AnyVal {
- def shouldExplain(cont: MessageContainer): Boolean = {
- implicit val ctx: Context = c
- cont.contained.explanation match {
- case "" => false
- case _ => ctx.settings.explain.value
- }
- }
- }
-}
-
-class MessageContainer(
- msgFn: => Message,
- val pos: SourcePosition,
- val level: Int
-) extends Exception with interfaces.Diagnostic {
- import MessageContainer._
- private var myMsg: String = null
- private var myIsNonSensical: Boolean = false
- private var myContained: Message = null
-
- override def position: Optional[interfaces.SourcePosition] =
- if (pos.exists && pos.source.exists) Optional.of(pos) else Optional.empty()
-
- /** The message to report */
- def message: String = {
- if (myMsg == null) {
- myMsg = contained.msg.replaceAll("\u001B\\[[;\\d]*m", "")
- if (myMsg.contains(nonSensicalStartTag)) {
- myIsNonSensical = true
- // myMsg might be composed of several d"..." invocations -> nested
- // nonsensical tags possible
- myMsg =
- myMsg
- .replaceAllLiterally(nonSensicalStartTag, "")
- .replaceAllLiterally(nonSensicalEndTag, "")
- }
- }
- myMsg
- }
-
- def contained: Message = {
- if (myContained == null)
- myContained = msgFn
-
- myContained
- }
-
- /** A message is non-sensical if it contains references to <nonsensical>
- * tags. Such tags are inserted by the error diagnostic framework if a
- * message contains references to internally generated error types. Normally
- * we want to suppress error messages referring to types like this because
- * they look weird and are normally follow-up errors to something that was
- * diagnosed before.
- */
- def isNonSensical = { message; myIsNonSensical }
-
- override def toString = s"$getClass at $pos: ${message}"
- override def getMessage() = message
-}