diff options
Diffstat (limited to 'compiler/src/dotty/tools/dotc/reporting/HideNonSensicalMessages.scala')
-rw-r--r-- | compiler/src/dotty/tools/dotc/reporting/HideNonSensicalMessages.scala | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/compiler/src/dotty/tools/dotc/reporting/HideNonSensicalMessages.scala b/compiler/src/dotty/tools/dotc/reporting/HideNonSensicalMessages.scala new file mode 100644 index 000000000..ba1ab9b33 --- /dev/null +++ b/compiler/src/dotty/tools/dotc/reporting/HideNonSensicalMessages.scala @@ -0,0 +1,21 @@ +package dotty.tools +package dotc +package reporting + +import core.Contexts.Context +import diagnostic.MessageContainer + +/** + * This trait implements `isHidden` so that we avoid reporting non-sensical messages. + */ +trait HideNonSensicalMessages extends Reporter { + /** Hides non-sensical messages, unless we haven't reported any error yet or + * `-Yshow-suppressed-errors` is set. + */ + override def isHidden(m: MessageContainer)(implicit ctx: Context): Boolean = + super.isHidden(m) || { + m.isNonSensical && + hasErrors && // if there are no errors yet, report even if diagnostic is non-sensical + !ctx.settings.YshowSuppressedErrors.value + } +} |