@@ -1964,19 +1964,15 @@ object Parsers {
1964
1964
* ClsParams ::= ClsParam {`' ClsParam}
1965
1965
* ClsParam ::= {Annotation} [{Modifier} (`val' | `var') | `inline'] Param
1966
1966
* DefParamClauses ::= {DefParamClause} [[nl] `(' [FunArgMods] DefParams `)']
1967
- * DefParamClause ::= [nl] `(' [DefParams] ')'
1968
- * ExtParamClause ::= [nl] ‘(’ ‘this’ DefParam ‘)’
1967
+ * DefParamClause ::= [nl] `(' [`erased'] [DefParams] ')'
1969
1968
* DefParams ::= DefParam {`,' DefParam}
1970
1969
* DefParam ::= {Annotation} [`inline'] Param
1971
1970
* Param ::= id `:' ParamType [`=' Expr]
1972
- *
1973
- * @return The parameter definitions, and whether leading parameter is tagged `this`
1974
1971
*/
1975
- def paramClauses (owner : Name , ofCaseClass : Boolean = false ): ( List [List [ValDef ]], Boolean ) = {
1972
+ def paramClauses (owner : Name , ofCaseClass : Boolean = false ): List [List [ValDef ]] = {
1976
1973
var imods : Modifiers = EmptyModifiers
1977
1974
var implicitOffset = - 1 // use once
1978
- var firstClause = true
1979
- var isExtension = false
1975
+ var firstClauseOfCaseClass = ofCaseClass
1980
1976
def param (): ValDef = {
1981
1977
val start = in.offset
1982
1978
var mods = annotsAsMods()
@@ -1995,7 +1991,7 @@ object Parsers {
1995
1991
else {
1996
1992
if (! (mods.flags &~ (ParamAccessor | Inline )).isEmpty)
1997
1993
syntaxError(" `val' or `var' expected" )
1998
- if (firstClause && ofCaseClass ) mods
1994
+ if (firstClauseOfCaseClass ) mods
1999
1995
else mods | PrivateLocal
2000
1996
}
2001
1997
}
@@ -2024,11 +2020,6 @@ object Parsers {
2024
2020
}
2025
2021
def paramClause (): List [ValDef ] = inParens {
2026
2022
if (in.token == RPAREN ) Nil
2027
- else if (in.token == THIS && firstClause && ! owner.isTypeName && owner != nme.CONSTRUCTOR ) {
2028
- in.nextToken()
2029
- isExtension = true
2030
- param() :: Nil
2031
- }
2032
2023
else {
2033
2024
def funArgMods (): Unit = {
2034
2025
if (in.token == IMPLICIT ) {
@@ -2050,7 +2041,7 @@ object Parsers {
2050
2041
if (in.token == LPAREN ) {
2051
2042
imods = EmptyModifiers
2052
2043
paramClause() :: {
2053
- firstClause = false
2044
+ firstClauseOfCaseClass = false
2054
2045
if (imods is Implicit ) Nil else clauses()
2055
2046
}
2056
2047
} else Nil
@@ -2068,7 +2059,7 @@ object Parsers {
2068
2059
listOfErrors.foreach { vparam =>
2069
2060
syntaxError(VarArgsParamMustComeLast (), vparam.tpt.pos)
2070
2061
}
2071
- ( result, isExtension)
2062
+ result
2072
2063
}
2073
2064
2074
2065
/* -------- DEFS ------------------------------------------- */
@@ -2220,7 +2211,7 @@ object Parsers {
2220
2211
/** DefDef ::= DefSig [(‘:’ | ‘<:’) Type] ‘=’ Expr
2221
2212
* | this ParamClause ParamClauses `=' ConstrExpr
2222
2213
* DefDcl ::= DefSig `:' Type
2223
- * DefSig ::= id [DefTypeParamClause] [ExtParamClause] DefParamClauses
2214
+ * DefSig ::= id [DefTypeParamClause] ParamClauses
2224
2215
*/
2225
2216
def defDefOrDcl (start : Offset , mods : Modifiers ): Tree = atPos(start, nameStart) {
2226
2217
def scala2ProcedureSyntax (resultTypeStr : String ) = {
@@ -2234,19 +2225,18 @@ object Parsers {
2234
2225
}
2235
2226
if (in.token == THIS ) {
2236
2227
in.nextToken()
2237
- val ( vparamss, _) = paramClauses(nme.CONSTRUCTOR )
2228
+ val vparamss = paramClauses(nme.CONSTRUCTOR )
2238
2229
if (in.isScala2Mode) newLineOptWhenFollowedBy(LBRACE )
2239
2230
val rhs = {
2240
2231
if (! (in.token == LBRACE && scala2ProcedureSyntax(" " ))) accept(EQUALS )
2241
2232
atPos(in.offset) { constrExpr() }
2242
2233
}
2243
2234
makeConstructor(Nil , vparamss, rhs).withMods(mods).setComment(in.getDocComment(start))
2244
2235
} else {
2245
- var mods1 = addFlag(mods, Method )
2236
+ val mods1 = addFlag(mods, Method )
2246
2237
val name = ident()
2247
2238
val tparams = typeParamClauseOpt(ParamOwner .Def )
2248
- val (vparamss, isExtension) = paramClauses(name)
2249
- if (isExtension) mods1 = mods1 | Extension
2239
+ val vparamss = paramClauses(name)
2250
2240
var tpt = fromWithinReturnType {
2251
2241
if (in.token == SUBTYPE && mods.is(Inline )) {
2252
2242
in.nextToken()
@@ -2375,7 +2365,7 @@ object Parsers {
2375
2365
def classConstr (owner : TypeName , isCaseClass : Boolean = false ): DefDef = atPos(in.lastOffset) {
2376
2366
val tparams = typeParamClauseOpt(ParamOwner .Class )
2377
2367
val cmods = fromWithinClassConstr(constrModsOpt(owner))
2378
- val ( vparamss, _) = paramClauses(owner, isCaseClass)
2368
+ val vparamss = paramClauses(owner, isCaseClass)
2379
2369
makeConstructor(tparams, vparamss).withMods(cmods)
2380
2370
}
2381
2371
0 commit comments