Skip to content

Commit ab32456

Browse files
committed
Fix unused method types propagation to next ()
1 parent 28a8554 commit ab32456

File tree

5 files changed

+15
-15
lines changed

5 files changed

+15
-15
lines changed

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

+7-7
Original file line numberDiff line numberDiff line change
@@ -1843,12 +1843,12 @@ object Parsers {
18431843
def typeParamClauseOpt(ownerKind: ParamOwner.Value): List[TypeDef] =
18441844
if (in.token == LBRACKET) typeParamClause(ownerKind) else Nil
18451845

1846-
/** ClsParamClauses ::= {ClsParamClause} [[nl] `(' `implicit' ClsParams `)']
1847-
* ClsParamClause ::= [nl] `(' [ClsParams] ')'
1846+
/** ClsParamClauses ::= {ClsParamClause} [[nl] `(' `implicit' [`unused'] ClsParams `)']
1847+
* ClsParamClause ::= [nl] `(' [`unused'] [ClsParams] ')'
18481848
* ClsParams ::= ClsParam {`' ClsParam}
18491849
* ClsParam ::= {Annotation} [{Modifier} (`val' | `var') | `inline'] Param
1850-
* DefParamClauses ::= {DefParamClause} [[nl] `(' `implicit' DefParams `)']
1851-
* DefParamClause ::= [nl] `(' [DefParams] ')'
1850+
* DefParamClauses ::= {DefParamClause} [[nl] `(' `implicit' [`unused'] DefParams `)']
1851+
* DefParamClause ::= [nl] `(' [`unused'] [DefParams] ')'
18521852
* DefParams ::= DefParam {`,' DefParam}
18531853
* DefParam ::= {Annotation} [`inline'] Param
18541854
* Param ::= id `:' ParamType [`=' Expr]
@@ -1907,7 +1907,6 @@ object Parsers {
19071907
if (in.token == RPAREN) Nil
19081908
else {
19091909
if (in.token == IMPLICIT || in.token == UNUSED) {
1910-
imods = EmptyModifiers
19111910
if (in.token == IMPLICIT) {
19121911
implicitOffset = in.offset
19131912
imods = implicitMods(imods)
@@ -1920,12 +1919,13 @@ object Parsers {
19201919
}
19211920
def clauses(): List[List[ValDef]] = {
19221921
newLineOptWhenFollowedBy(LPAREN)
1923-
if (in.token == LPAREN)
1922+
if (in.token == LPAREN) {
1923+
imods = EmptyModifiers
19241924
paramClause() :: {
19251925
firstClauseOfCaseClass = false
19261926
if (imods is Implicit) Nil else clauses()
19271927
}
1928-
else Nil
1928+
} else Nil
19291929
}
19301930
val start = in.offset
19311931
val result = clauses()

tests/run/unused-4.check

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
foo
22
foo2
3-
fun
3+
fun 42
44
foo
55
foo2
6-
fun2
6+
fun2 abc

tests/run/unused-4.scala

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ object Test {
1616
}
1717

1818
def fun(a: Int)(unused b: String): Unit = {
19-
println("fun")
19+
println("fun " + a)
2020
}
2121

2222
def fun2(unused a: Int)(b: String): Unit = {
23-
println("fun2")
23+
println("fun2 " + b)
2424
}
2525
}

tests/run/unused-5.check

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ foo
22
foo
33
foo
44
foo
5-
fun
5+
fun 42 42
66
foo
77
foo
88
foo
99
foo
10-
fun2
10+
fun2 42 42

tests/run/unused-5.scala

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ object Test {
1111
}
1212

1313
def fun(a: Int)(unused b: Int)(c: Int)(unused d: Int): Unit = {
14-
println("fun")
14+
println("fun " + a + " " + c)
1515
}
1616

1717
def fun2(unused a2: Int)(b2: Int)(unused c2: Int)(d2: Int): Unit = {
18-
println("fun2")
18+
println("fun2 " + b2 + " " + d2)
1919
}
2020
}

0 commit comments

Comments
 (0)