Skip to content

Commit 05fb706

Browse files
oderskysmarter
authored andcommitted
Allow misindented continuation keywords
Also: align indentation in some code
1 parent a04b6d1 commit 05fb706

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
@@ -1234,6 +1234,9 @@ object Parsers {
12341234
case _ => op
12351235
}
12361236

1237+
def observeIndentedUnlessFollowedBy(followers: BitSet): Unit =
1238+
if !followers.contains(in.token) then in.observeIndented()
1239+
12371240
/* ------------- TYPES ------------------------------------------------------ */
12381241

12391242
/** Same as [[typ]], but if this results in a wildcard it emits a syntax error and
@@ -1637,7 +1640,7 @@ object Parsers {
16371640
in.nextToken()
16381641
}
16391642
else
1640-
in.observeIndented()
1643+
observeIndentedUnlessFollowedBy(BitSet(THEN, DO))
16411644
if (rewriteToNewSyntax(t.span))
16421645
dropParensOrBraces(t.span.start, s"${tokenString(altToken)}")
16431646
t
@@ -2298,7 +2301,7 @@ object Parsers {
22982301
dropParensOrBraces(start, if (in.token == YIELD || in.token == DO) "" else "do")
22992302
}
23002303
}
2301-
in.observeIndented()
2304+
observeIndentedUnlessFollowedBy(BitSet(YIELD, DO))
23022305
res
23032306
}
23042307
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)