Skip to content

Commit 2e72be4

Browse files
committed
Make derives a soft keyword
1 parent 6bf25d2 commit 2e72be4

File tree

4 files changed

+5
-7
lines changed

4 files changed

+5
-7
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -398,6 +398,7 @@ object StdNames {
398398
val definitions: N = "definitions"
399399
val delayedInit: N = "delayedInit"
400400
val delayedInitArg: N = "delayedInit$body"
401+
val derives: N = "derives"
401402
val drop: N = "drop"
402403
val dynamics: N = "dynamics"
403404
val elem: N = "elem"

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2532,7 +2532,7 @@ object Parsers {
25322532
}
25332533
else Nil
25342534
val derived =
2535-
if (in.token == DERIVES) {
2535+
if (isIdent(nme.derives)) {
25362536
in.nextToken()
25372537
tokenSeparated(COMMA, qualId)
25382538
}
@@ -2554,7 +2554,7 @@ object Parsers {
25542554
*/
25552555
def templateOpt(constr: DefDef, isEnum: Boolean = false): Template = {
25562556
newLineOptWhenFollowedBy(LBRACE)
2557-
if (in.token == EXTENDS || in.token == DERIVES || in.token == LBRACE)
2557+
if (in.token == EXTENDS || isIdent(nme.derives) || in.token == LBRACE)
25582558
template(constr, isEnum)
25592559
else
25602560
Template(constr, Nil, EmptyValDef, Nil)

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -205,8 +205,7 @@ object Scanners {
205205
private def handleMigration(keyword: Token): Token =
206206
if (!isScala2Mode) keyword
207207
else if ( keyword == ENUM
208-
|| keyword == ERASED
209-
|| keyword == DERIVES) treatAsIdent()
208+
|| keyword == ERASED) treatAsIdent()
210209
else keyword
211210

212211

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,6 @@ abstract class TokensCommon {
9494
//final val FORSOME = 61; enter(FORSOME, "forSome") // TODO: deprecate
9595
//final val ENUM = 62; enter(ENUM, "enum")
9696
//final val ERASED = 63; enter(ERASED, "erased")
97-
//final val DERIVES = 64; enter(DERIVES, "derives")
9897

9998
/** special symbols */
10099
final val COMMA = 70; enter(COMMA, "','")
@@ -179,7 +178,6 @@ object Tokens extends TokensCommon {
179178
final val FORSOME = 61; enter(FORSOME, "forSome") // TODO: deprecate
180179
final val ENUM = 62; enter(ENUM, "enum")
181180
final val ERASED = 63; enter(ERASED, "erased")
182-
final val DERIVES = 64; enter(DERIVES, "derives")
183181

184182
/** special symbols */
185183
final val NEWLINE = 78; enter(NEWLINE, "end of statement", "new line")
@@ -200,7 +198,7 @@ object Tokens extends TokensCommon {
200198
/** XML mode */
201199
final val XMLSTART = 96; enter(XMLSTART, "$XMLSTART$<") // TODO: deprecate
202200

203-
final val alphaKeywords: TokenSet = tokenRange(IF, DERIVES)
201+
final val alphaKeywords: TokenSet = tokenRange(IF, ERASED)
204202
final val symbolicKeywords: TokenSet = tokenRange(USCORE, VIEWBOUND)
205203
final val symbolicTokens: TokenSet = tokenRange(COMMA, VIEWBOUND)
206204
final val keywords: TokenSet = alphaKeywords | symbolicKeywords

0 commit comments

Comments
 (0)