Skip to content

Commit e4ee662

Browse files
remove SuppressedMessage exception and update Diagnostic as needed
1 parent 73f6f1b commit e4ee662

File tree

2 files changed

+12
-11
lines changed

2 files changed

+12
-11
lines changed

src/dotty/tools/dotc/reporting/Reporter.scala

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,23 +10,27 @@ import collection.mutable
1010
import config.Settings.Setting
1111
import config.Printers
1212
import java.lang.System.currentTimeMillis
13+
import typer.ErrorReporting.DiagnosticString
1314

1415
object Reporter {
1516

1617
class Diagnostic(msgFn: => String, val pos: SourcePosition, val severity: Severity) extends Exception {
18+
import DiagnosticString._
1719
private var myMsg: String = null
18-
private var myIsSuppressed: Boolean = false
20+
private var myIsNonSensical: Boolean = false
1921
def msg: String = {
20-
if (myMsg == null)
21-
try myMsg = msgFn
22-
catch {
23-
case ex: SuppressedMessage =>
24-
myIsSuppressed = true
25-
myMsg = "<suppressed message>"
22+
if (myMsg == null) {
23+
myMsg = msgFn
24+
if (myMsg.contains(nonSensicalStartTag)) {
25+
myIsNonSensical = true
26+
// myMsg might be composed of several d"..." invocations -> nested nonsensical tags possible
27+
myMsg = myMsg.replaceAllLiterally(nonSensicalStartTag, "").replaceAllLiterally(nonSensicalEndTag, "")
2628
}
29+
}
2730
myMsg
2831
}
29-
def isSuppressed = { msg; myIsSuppressed }
32+
def isNonSensical = { msg; myIsNonSensical }
33+
def isSuppressed(implicit ctx: Context): Boolean = !ctx.settings.YshowSuppressedErrors.value && isNonSensical
3034
override def toString = s"$severity at $pos: $msg"
3135
override def getMessage() = msg
3236

@@ -68,8 +72,6 @@ object Reporter {
6872
case UncheckedWARNING => ctx.settings.unchecked
6973
case FeatureWARNING => ctx.settings.feature
7074
}
71-
72-
class SuppressedMessage extends Exception
7375
}
7476

7577
import Reporter._

src/dotty/tools/dotc/typer/ErrorReporting.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import Applications._, Implicits._
1010
import util.Positions._
1111
import printing.Showable
1212
import printing.Disambiguation.disambiguated
13-
import reporting.Reporter.SuppressedMessage
1413

1514
object ErrorReporting {
1615

0 commit comments

Comments
 (0)