aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/reporting/diagnostic
diff options
context:
space:
mode:
authorFelix Mulder <felix.mulder@gmail.com>2016-09-28 13:03:04 +0200
committerFelix Mulder <felix.mulder@gmail.com>2016-10-10 13:25:36 +0200
commite42bb303231b9c91f679c410d51455ba91df024d (patch)
tree69f52e133631f3b3af0d47c6586896c0a914cb86 /src/dotty/tools/dotc/reporting/diagnostic
parentf7b8980fad5adb20e9a420a16f5b3416927dccbc (diff)
downloaddotty-e42bb303231b9c91f679c410d51455ba91df024d.tar.gz
dotty-e42bb303231b9c91f679c410d51455ba91df024d.tar.bz2
dotty-e42bb303231b9c91f679c410d51455ba91df024d.zip
Change Message#errorId to type Int
Diffstat (limited to 'src/dotty/tools/dotc/reporting/diagnostic')
-rw-r--r--src/dotty/tools/dotc/reporting/diagnostic/Message.scala6
-rw-r--r--src/dotty/tools/dotc/reporting/diagnostic/messages.scala14
2 files changed, 11 insertions, 9 deletions
diff --git a/src/dotty/tools/dotc/reporting/diagnostic/Message.scala b/src/dotty/tools/dotc/reporting/diagnostic/Message.scala
index e365851be..f19191f4f 100644
--- a/src/dotty/tools/dotc/reporting/diagnostic/Message.scala
+++ b/src/dotty/tools/dotc/reporting/diagnostic/Message.scala
@@ -15,7 +15,7 @@ object Message {
new NoExplanation(str)
}
-abstract class Message(val errorId: String) { self =>
+abstract class Message(val errorId: Int) { self =>
import messages._
/** The `msg` contains the diagnostic message e.g:
@@ -81,7 +81,7 @@ abstract class Message(val errorId: String) { self =>
}
/** The fallback `Message` containing no explanation and having no `kind` */
-class NoExplanation(val msg: String) extends Message("") {
+class NoExplanation(val msg: String) extends Message(NoExplanation.ID) {
val explanation = ""
val kind = ""
}
@@ -90,6 +90,8 @@ class NoExplanation(val msg: String) extends Message("") {
* lacks an explanation
*/
object NoExplanation {
+ final val ID = -1
+
def unapply(m: Message): Option[Message] =
if (m.explanation == "") Some(m)
else None
diff --git a/src/dotty/tools/dotc/reporting/diagnostic/messages.scala b/src/dotty/tools/dotc/reporting/diagnostic/messages.scala
index 11c6b43d9..4553a2d22 100644
--- a/src/dotty/tools/dotc/reporting/diagnostic/messages.scala
+++ b/src/dotty/tools/dotc/reporting/diagnostic/messages.scala
@@ -89,7 +89,7 @@ object messages {
import dotc.ast.untpd
// Syntax Errors ---------------------------------------------------------- //
- abstract class EmptyCatchOrFinallyBlock(tryBody: untpd.Tree, errNo: String)(implicit ctx: Context)
+ abstract class EmptyCatchOrFinallyBlock(tryBody: untpd.Tree, errNo: Int)(implicit ctx: Context)
extends Message(errNo) {
val explanation = {
val tryString = tryBody match {
@@ -121,7 +121,7 @@ object messages {
}
case class EmptyCatchBlock(tryBody: untpd.Tree)(implicit ctx: Context)
- extends EmptyCatchOrFinallyBlock(tryBody, "E001") {
+ extends EmptyCatchOrFinallyBlock(tryBody, 1) {
val kind = "Syntax"
val msg =
hl"""|The ${"catch"} block does not contain a valid expression, try
@@ -129,7 +129,7 @@ object messages {
}
case class EmptyCatchAndFinallyBlock(tryBody: untpd.Tree)(implicit ctx: Context)
- extends EmptyCatchOrFinallyBlock(tryBody, "E002") {
+ extends EmptyCatchOrFinallyBlock(tryBody, 2) {
val kind = "Syntax"
val msg =
hl"""|A ${"try"} without ${"catch"} or ${"finally"} is equivalent to putting
@@ -137,7 +137,7 @@ object messages {
}
case class DeprecatedWithOperator()(implicit ctx: Context)
- extends Message("E003") {
+ extends Message(3) {
val kind = "Syntax"
val msg =
hl"""${"with"} as a type operator has been deprecated; use `&' instead"""
@@ -168,7 +168,7 @@ object messages {
// Type Errors ------------------------------------------------------------ //
case class DuplicateBind(bind: untpd.Bind, tree: untpd.CaseDef)(implicit ctx: Context)
- extends Message("E004") {
+ extends Message(4) {
val kind = "Naming"
val msg = em"duplicate pattern variable: `${bind.name}`"
@@ -195,7 +195,7 @@ object messages {
}
case class MissingIdent(tree: untpd.Ident, treeKind: String, name: String)(implicit ctx: Context)
- extends Message("E005") {
+ extends Message(5) {
val kind = "Missing Identifier"
val msg = em"not found: $treeKind$name"
@@ -206,7 +206,7 @@ object messages {
}
case class TypeMismatch(found: Type, expected: Type, whyNoMatch: String = "", implicitFailure: String = "")(implicit ctx: Context)
- extends Message("E006") {
+ extends Message(6) {
val kind = "Type Mismatch"
private val (where, printCtx) = Formatting.disambiguateTypes(found, expected)
private val (fnd, exp) = Formatting.typeDiff(found, expected)(printCtx)