Skip to content

Commit e75f7cc

Browse files
committed
Fix #10056: Drop old context function closure syntax
1 parent 6098ec2 commit e75f7cc

File tree

2 files changed

+19
-20
lines changed

2 files changed

+19
-20
lines changed

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

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -443,35 +443,35 @@ object Parsers {
443443

444444
/** Convert tree to formal parameter list
445445
*/
446-
def convertToParams(tree: Tree, mods: Modifiers): List[ValDef] = tree match {
446+
def convertToParams(tree: Tree): List[ValDef] = tree match {
447447
case Parens(t) =>
448-
convertToParam(t, mods) :: Nil
448+
convertToParam(t) :: Nil
449449
case Tuple(ts) =>
450-
ts.map(convertToParam(_, mods))
450+
ts.map(convertToParam(_))
451451
case t: Typed =>
452452
report.errorOrMigrationWarning(
453453
em"parentheses are required around the parameter of a lambda${rewriteNotice()}",
454454
in.sourcePos())
455455
if migrateTo3 then
456456
patch(source, t.span.startPos, "(")
457457
patch(source, t.span.endPos, ")")
458-
convertToParam(t, mods) :: Nil
458+
convertToParam(t) :: Nil
459459
case t =>
460-
convertToParam(t, mods) :: Nil
460+
convertToParam(t) :: Nil
461461
}
462462

463463
/** Convert tree to formal parameter
464464
*/
465-
def convertToParam(tree: Tree, mods: Modifiers, expected: String = "formal parameter"): ValDef = tree match {
465+
def convertToParam(tree: Tree, expected: String = "formal parameter"): ValDef = tree match {
466466
case id @ Ident(name) =>
467-
makeParameter(name.asTermName, TypeTree(), mods, isBackquoted = isBackquoted(id)).withSpan(tree.span)
467+
makeParameter(name.asTermName, TypeTree(), EmptyModifiers, isBackquoted = isBackquoted(id)).withSpan(tree.span)
468468
case Typed(id @ Ident(name), tpt) =>
469-
makeParameter(name.asTermName, tpt, mods, isBackquoted = isBackquoted(id)).withSpan(tree.span)
469+
makeParameter(name.asTermName, tpt, EmptyModifiers, isBackquoted = isBackquoted(id)).withSpan(tree.span)
470470
case Typed(Splice(Ident(name)), tpt) =>
471-
makeParameter(("$" + name).toTermName, tpt, mods).withSpan(tree.span)
471+
makeParameter(("$" + name).toTermName, tpt, EmptyModifiers).withSpan(tree.span)
472472
case _ =>
473473
syntaxError(s"not a legal $expected", tree.span)
474-
makeParameter(nme.ERROR, tree, mods)
474+
makeParameter(nme.ERROR, tree, EmptyModifiers)
475475
}
476476

477477
/** Convert (qual)ident to type identifier
@@ -1500,7 +1500,7 @@ object Parsers {
15001500
def typedFunParam(start: Offset, name: TermName, mods: Modifiers = EmptyModifiers): ValDef =
15011501
atSpan(start) {
15021502
accept(COLON)
1503-
makeParameter(name, typ(), mods | Param)
1503+
makeParameter(name, typ(), mods)
15041504
}
15051505

15061506
/** FunParamClause ::= ‘(’ TypedFunParam {‘,’ TypedFunParam } ‘)’
@@ -1854,14 +1854,14 @@ object Parsers {
18541854
accept(altToken)
18551855
t
18561856

1857-
/** Expr ::= [`implicit'] FunParams (‘=>’ | ‘?=>’) Expr
1857+
/** Expr ::= [`implicit'] FunParams ‘=>’ Expr
18581858
* | Expr1
18591859
* FunParams ::= Bindings
18601860
* | id
18611861
* | `_'
18621862
* ExprInParens ::= PostfixExpr `:' Type
18631863
* | Expr
1864-
* BlockResult ::= [‘implicit’] FunParams (‘=>’ | ‘?=>’) Block
1864+
* BlockResult ::= [‘implicit’] FunParams ‘=>’ Block
18651865
* | Expr1
18661866
* Expr1 ::= [‘inline’] `if' `(' Expr `)' {nl} Expr [[semi] else Expr]
18671867
* | [‘inline’] `if' Expr `then' Expr [[semi] else Expr]
@@ -1910,10 +1910,9 @@ object Parsers {
19101910
finally placeholderParams = saved
19111911

19121912
val t = expr1(location)
1913-
if (in.token == ARROW || in.token == CTXARROW) {
1913+
if (in.token == ARROW) {
19141914
placeholderParams = Nil // don't interpret `_' to the left of `=>` as placeholder
1915-
val paramMods = if in.token == CTXARROW then Modifiers(Given) else EmptyModifiers
1916-
wrapPlaceholders(closureRest(start, location, convertToParams(t, paramMods)))
1915+
wrapPlaceholders(closureRest(start, location, convertToParams(t)))
19171916
}
19181917
else if (isWildcard(t)) {
19191918
placeholderParams = placeholderParams ::: saved
@@ -2176,7 +2175,7 @@ object Parsers {
21762175

21772176
def closureRest(start: Int, location: Location, params: List[Tree]): Tree =
21782177
atSpan(start, in.offset) {
2179-
if in.token == CTXARROW then in.nextToken() else accept(ARROW)
2178+
accept(ARROW)
21802179
Function(params, if (location == Location.InBlock) block() else expr())
21812180
}
21822181

@@ -3778,7 +3777,7 @@ object Parsers {
37783777
case Typed(tree @ This(EmptyTypeIdent), tpt) =>
37793778
self = makeSelfDef(nme.WILDCARD, tpt).withSpan(first.span)
37803779
case _ =>
3781-
val ValDef(name, tpt, _) = convertToParam(first, EmptyModifiers, "self type clause")
3780+
val ValDef(name, tpt, _) = convertToParam(first, "self type clause")
37823781
if (name != nme.ERROR)
37833782
self = makeSelfDef(name, tpt).withSpan(first.span)
37843783
}

docs/docs/internals/syntax.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,9 +188,9 @@ Types ::= Type {‘,’ Type}
188188

189189
### Expressions
190190
```ebnf
191-
Expr ::= FunParams (‘=>’ | ‘?=>’) Expr Function(args, expr), Function(ValDef([implicit], id, TypeTree(), EmptyTree), expr)
191+
Expr ::= FunParams ‘=>’ Expr Function(args, expr), Function(ValDef([implicit], id, TypeTree(), EmptyTree), expr)
192192
| Expr1
193-
BlockResult ::= FunParams (‘=>’ | ‘?=>’) Block
193+
BlockResult ::= FunParams ‘=>’ Block
194194
| Expr1
195195
FunParams ::= Bindings
196196
| id

0 commit comments

Comments
 (0)