Skip to content

Commit dd29816

Browse files
committed
Allow misindented continuation keywords
Also: align indentation in some code
1 parent 8936411 commit dd29816

File tree

4 files changed

+10
-5
lines changed

4 files changed

+10
-5
lines changed

compiler/src/dotty/tools/backend/sjs/JSCodeGen.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2588,7 +2588,8 @@ class JSCodeGen()(implicit ctx: Context) {
25882588
sym.info.paramNamess.flatten.zip(sym.info.paramInfoss.flatten)
25892589

25902590
val wereRepeated = ctx.atPhase(ctx.elimRepeatedPhase) {
2591-
val list = for ((name, tpe) <- paramNamesAndTypes)
2591+
val list =
2592+
for ((name, tpe) <- paramNamesAndTypes)
25922593
yield (name -> tpe.isRepeatedParam)
25932594
list.toMap
25942595
}

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1195,6 +1195,9 @@ object Parsers {
11951195
case _ => op
11961196
}
11971197

1198+
def observeIndentedUnlessFollowedBy(followers: BitSet): Unit =
1199+
if !followers.contains(in.token) then in.observeIndented()
1200+
11981201
/* ------------- TYPES ------------------------------------------------------ */
11991202

12001203
/** Same as [[typ]], but if this results in a wildcard it emits a syntax error and
@@ -1597,7 +1600,7 @@ object Parsers {
15971600
in.nextToken()
15981601
}
15991602
else
1600-
in.observeIndented()
1603+
observeIndentedUnlessFollowedBy(BitSet(THEN, DO))
16011604
if (rewriteToNewSyntax(t.span))
16021605
dropParensOrBraces(t.span.start, s"${tokenString(altToken)}")
16031606
t
@@ -2262,7 +2265,7 @@ object Parsers {
22622265
dropParensOrBraces(start, if (in.token == YIELD || in.token == DO) "" else "do")
22632266
}
22642267
}
2265-
in.observeIndented()
2268+
observeIndentedUnlessFollowedBy(BitSet(YIELD, DO))
22662269
res
22672270
}
22682271
else {

compiler/src/dotty/tools/dotc/reporting/diagnostic/messages.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2174,7 +2174,8 @@ object messages {
21742174
def symLocation(sym: Symbol) = {
21752175
val lineDesc =
21762176
if (sym.span.exists && sym.span != sym.owner.span)
2177-
s" at line ${sym.sourcePos.line + 1}" else ""
2177+
s" at line ${sym.sourcePos.line + 1}"
2178+
else ""
21782179
i"in ${sym.owner}${lineDesc}"
21792180
}
21802181
val clashDescription =

compiler/src/dotty/tools/dotc/transform/Mixin.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ class Mixin extends MiniPhase with SymTransformer { thisPhase =>
254254

255255
def setters(mixin: ClassSymbol): List[Tree] =
256256
for (setter <- mixin.info.decls.filter(setr => setr.isSetter && !wasOneOf(setr, Deferred)))
257-
yield transformFollowing(DefDef(mkForwarderSym(setter.asTerm), unitLiteral.withSpan(cls.span)))
257+
yield transformFollowing(DefDef(mkForwarderSym(setter.asTerm), unitLiteral.withSpan(cls.span)))
258258

259259
def mixinForwarders(mixin: ClassSymbol): List[Tree] =
260260
for (meth <- mixin.info.decls.toList if needsMixinForwarder(meth))

0 commit comments

Comments
 (0)