@@ -1063,7 +1063,7 @@ object Parsers {
1063
1063
case FOR =>
1064
1064
forExpr()
1065
1065
case IMPLICIT =>
1066
- implicitClosure(in.skipToken(), location )
1066
+ implicitClosure(in.offset, location, atPos(in. skipToken()) { Mod . Implicit () } )
1067
1067
case _ =>
1068
1068
expr1Rest(postfixExpr(), location)
1069
1069
}
@@ -1114,9 +1114,8 @@ object Parsers {
1114
1114
/** Expr ::= implicit Id `=>' Expr
1115
1115
* BlockResult ::= implicit Id [`:' InfixType] `=>' Block
1116
1116
*/
1117
- def implicitClosure (start : Int , location : Location .Value , implicitMod : Option [Mod ] = None ): Tree = {
1118
- var mods = atPos(start) { Modifiers (Implicit ) }
1119
- if (implicitMod.nonEmpty) mods = mods.withAddedMod(implicitMod.get)
1117
+ def implicitClosure (start : Int , location : Location .Value , implicitMod : Mod ): Tree = {
1118
+ val mods = Modifiers (Implicit ).withAddedMod(implicitMod)
1120
1119
val id = termIdent()
1121
1120
val paramExpr =
1122
1121
if (location == Location .InBlock && in.token == COLON )
@@ -1485,7 +1484,7 @@ object Parsers {
1485
1484
private def modOfToken (tok : Int ): Mod = tok match {
1486
1485
case ABSTRACT => Mod .Abstract ()
1487
1486
case FINAL => Mod .Final ()
1488
- case IMPLICIT => Mod .Implicit (ImplicitCommon )
1487
+ case IMPLICIT => Mod .Implicit ()
1489
1488
case INLINE => Mod .Inline ()
1490
1489
case LAZY => Mod .Lazy ()
1491
1490
case OVERRIDE => Mod .Override ()
@@ -1741,7 +1740,7 @@ object Parsers {
1741
1740
else {
1742
1741
if (in.token == IMPLICIT ) {
1743
1742
implicitOffset = in.offset
1744
- implicitMod = atPos(in.skipToken()) { Mod .Implicit (Implicit ) }
1743
+ implicitMod = atPos(in.skipToken()) { Mod .Implicit () }
1745
1744
}
1746
1745
commaSeparated(param)
1747
1746
}
@@ -2214,9 +2213,9 @@ object Parsers {
2214
2213
stats.toList
2215
2214
}
2216
2215
2217
- def localDef (start : Int , implicitFlag : FlagSet , implicitMod : Option [Mod ] = None ): Tree = {
2218
- var mods = addFlag( defAnnotsMods(localModifierTokens), implicitFlag )
2219
- if ( implicitMod.nonEmpty ) mods = mods.withAddedMod(implicitMod.get )
2216
+ def localDef (start : Int , implicitMod : Option [Mod ] = None ): Tree = {
2217
+ var mods = defAnnotsMods(localModifierTokens)
2218
+ for (imod <- implicitMod) mods = ( mods | ImplicitCommon ) .withAddedMod(imod )
2220
2219
defOrDcl(start, mods)
2221
2220
}
2222
2221
@@ -2239,11 +2238,11 @@ object Parsers {
2239
2238
else if (isDefIntro(localModifierTokens))
2240
2239
if (in.token == IMPLICIT ) {
2241
2240
val start = in.offset
2242
- val mod = atPos(in.skipToken()) { Mod .Implicit (ImplicitCommon ) }
2243
- if (isIdent) stats += implicitClosure(start, Location .InBlock , Some ( mod) )
2244
- else stats += localDef(start, ImplicitCommon , Some (mod))
2241
+ val mod = atPos(in.skipToken()) { Mod .Implicit () }
2242
+ if (isIdent) stats += implicitClosure(start, Location .InBlock , mod)
2243
+ else stats += localDef(start, Some (mod))
2245
2244
} else {
2246
- stats += localDef(in.offset, EmptyFlags )
2245
+ stats += localDef(in.offset)
2247
2246
}
2248
2247
else if (! isStatSep && (in.token != CASE )) {
2249
2248
exitOnError = mustStartStat
0 commit comments