Skip to content

Commit 0df7eae

Browse files
committed
Drop redundant calls to toMessage
Also: use exclusively Message insteax of String for error handling in Scanner and Parser.
1 parent fa3269c commit 0df7eae

File tree

11 files changed

+138
-145
lines changed

11 files changed

+138
-145
lines changed

compiler/src/dotty/tools/dotc/core/Types.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5312,10 +5312,10 @@ object Types {
53125312
def msg(using Context): Message =
53135313
ctx.base.errorTypeMsg.get(this) match
53145314
case Some(m) => m
5315-
case None => "error message from previous run no longer available".toMessage
5315+
case None => em"error message from previous run no longer available"
53165316

53175317
object UnspecifiedErrorType extends ErrorType {
5318-
override def msg(using Context): Message = "unspecified error".toMessage
5318+
override def msg(using Context): Message = em"unspecified error"
53195319
}
53205320

53215321
/* Type used to track Select nodes that could not resolve a member and their qualifier is a scala.Dynamic. */

compiler/src/dotty/tools/dotc/inlines/Inlines.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -156,9 +156,9 @@ object Inlines:
156156
else ("successive inlines", ctx.settings.XmaxInlines)
157157
errorTree(
158158
tree,
159-
i"""|Maximal number of $reason (${setting.value}) exceeded,
160-
|Maybe this is caused by a recursive inline method?
161-
|You can use ${setting.name} to change the limit.""".toMessage,
159+
em"""|Maximal number of $reason (${setting.value}) exceeded,
160+
|Maybe this is caused by a recursive inline method?
161+
|You can use ${setting.name} to change the limit.""",
162162
(tree :: enclosingInlineds).last.srcPos
163163
)
164164
if ctx.base.stopInlining && enclosingInlineds.isEmpty then

compiler/src/dotty/tools/dotc/parsing/JavaParsers.scala

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,10 @@ object JavaParsers {
7171
}
7272
}
7373

74-
def syntaxError(msg: String, skipIt: Boolean): Unit =
74+
def syntaxError(msg: Message, skipIt: Boolean): Unit =
7575
syntaxError(in.offset, msg, skipIt)
7676

77-
def syntaxError(offset: Int, msg: String, skipIt: Boolean): Unit = {
77+
def syntaxError(offset: Int, msg: Message, skipIt: Boolean): Unit = {
7878
if (offset > lastErrorOffset) {
7979
syntaxError(msg, offset)
8080
// no more errors on this token.
@@ -178,9 +178,7 @@ object JavaParsers {
178178
if (in.token != token) {
179179
val offsetToReport = in.offset
180180
val msg =
181-
tokenString(token) + " expected but " +
182-
tokenString(in.token) + " found."
183-
181+
em"${tokenString(token)} expected but ${tokenString(in.token)} found."
184182
syntaxError(offsetToReport, msg, skipIt = true)
185183
}
186184
if (in.token == token) in.nextToken()
@@ -271,7 +269,7 @@ object JavaParsers {
271269
case FLOAT => in.nextToken(); TypeTree(FloatType)
272270
case DOUBLE => in.nextToken(); TypeTree(DoubleType)
273271
case BOOLEAN => in.nextToken(); TypeTree(BooleanType)
274-
case _ => syntaxError("illegal start of type", skipIt = true); errorTypeTree
272+
case _ => syntaxError(em"illegal start of type", skipIt = true); errorTypeTree
275273
}
276274
}
277275

@@ -762,7 +760,7 @@ object JavaParsers {
762760
accept(SEMI)
763761
val names = buf.toList
764762
if (names.length < 2) {
765-
syntaxError(start, "illegal import", skipIt = false)
763+
syntaxError(start, em"illegal import", skipIt = false)
766764
List()
767765
}
768766
else {
@@ -954,7 +952,7 @@ object JavaParsers {
954952
case INTERFACE => interfaceDecl(start, mods)
955953
case AT => annotationDecl(start, mods)
956954
case CLASS => classDecl(start, mods)
957-
case _ => in.nextToken(); syntaxError("illegal start of type declaration", skipIt = true); List(errorTypeTree)
955+
case _ => in.nextToken(); syntaxError(em"illegal start of type declaration", skipIt = true); List(errorTypeTree)
958956
}
959957

960958
def tryConstant: Option[Constant] = {

compiler/src/dotty/tools/dotc/parsing/JavaScanners.scala

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import JavaTokens._
1010
import scala.annotation.{switch, tailrec}
1111
import util.Chars._
1212
import PartialFunction.cond
13+
import core.Decorators.em
1314

1415
object JavaScanners {
1516

@@ -108,7 +109,7 @@ object JavaScanners {
108109
setStrVal()
109110
nextChar()
110111
else
111-
error("unclosed string literal")
112+
error(em"unclosed string literal")
112113
else
113114
nextChar()
114115
if ch != '\"' then // "" empty string literal
@@ -127,7 +128,7 @@ object JavaScanners {
127128
setStrVal()
128129
}
129130
else
130-
error("unclosed character literal")
131+
error(em"unclosed character literal")
131132

132133
case '=' =>
133134
token = EQUALS
@@ -298,7 +299,7 @@ object JavaScanners {
298299
nextChar()
299300
token = DOTDOTDOT
300301
}
301-
else error("`.` character expected")
302+
else error(em"`.` character expected")
302303
}
303304

304305
case ';' =>
@@ -336,7 +337,7 @@ object JavaScanners {
336337
case SU =>
337338
if (isAtEnd) token = EOF
338339
else {
339-
error("illegal character")
340+
error(em"illegal character")
340341
nextChar()
341342
}
342343

@@ -347,7 +348,7 @@ object JavaScanners {
347348
getIdentRest()
348349
}
349350
else {
350-
error("illegal character: " + ch.toInt)
351+
error(em"illegal character: ${ch.toInt}")
351352
nextChar()
352353
}
353354
}
@@ -360,7 +361,7 @@ object JavaScanners {
360361
case _ => nextChar(); skipLineComment()
361362
}
362363
@tailrec def skipJavaComment(): Unit = ch match {
363-
case SU => incompleteInputError("unclosed comment")
364+
case SU => incompleteInputError(em"unclosed comment")
364365
case '*' => nextChar(); if (ch == '/') nextChar() else skipJavaComment()
365366
case _ => nextChar(); skipJavaComment()
366367
}
@@ -480,7 +481,7 @@ object JavaScanners {
480481
nextChar()
481482
}
482483
if (ch != LF && ch != CR) { // CR-LF is already normalized into LF by `JavaCharArrayReader`
483-
error("illegal text block open delimiter sequence, missing line terminator")
484+
error(em"illegal text block open delimiter sequence, missing line terminator")
484485
return
485486
}
486487
nextChar()
@@ -529,7 +530,7 @@ object JavaScanners {
529530

530531
// Bail out if the block never did have an end
531532
if (!blockClosed) {
532-
error("unclosed text block")
533+
error(em"unclosed text block")
533534
return
534535
}
535536

@@ -642,14 +643,14 @@ object JavaScanners {
642643
while (i < len) {
643644
val d = digit2int(strVal.charAt(i), base)
644645
if (d < 0) {
645-
error("malformed integer number")
646+
error(em"malformed integer number")
646647
return 0
647648
}
648649
if (value < 0 ||
649650
limit / (base / divider) < value ||
650651
limit - (d / divider) < value * (base / divider) &&
651652
!(negated && limit == value * base - 1 + d)) {
652-
error("integer number too large")
653+
error(em"integer number too large")
653654
return 0
654655
}
655656
value = value * base + d
@@ -666,11 +667,11 @@ object JavaScanners {
666667
try {
667668
val value: Double = java.lang.Double.valueOf(strVal.toString).nn.doubleValue()
668669
if (value > limit)
669-
error("floating point number too large")
670+
error(em"floating point number too large")
670671
if (negated) -value else value
671672
} catch {
672673
case _: NumberFormatException =>
673-
error("malformed floating point number")
674+
error(em"malformed floating point number")
674675
0.0
675676
}
676677
}

0 commit comments

Comments
 (0)