@@ -36,8 +36,6 @@ object Parsers {
36
36
37
37
import ast .untpd ._
38
38
39
- val AllowOldWhiteboxSyntax = true
40
-
41
39
case class OpInfo (operand : Tree , operator : Ident , offset : Offset )
42
40
43
41
class ParensCounters {
@@ -1774,16 +1772,9 @@ object Parsers {
1774
1772
Nil
1775
1773
}
1776
1774
1777
- def typedOpt (): Tree = {
1778
- if (in.token == COLONEOL ) in.token = COLON
1779
- // a hack to allow
1780
- //
1781
- // def f():
1782
- // T
1783
- //
1775
+ def typedOpt (): Tree =
1784
1776
if (in.token == COLON ) { in.nextToken(); toplevelTyp() }
1785
1777
else TypeTree ().withSpan(Span (in.lastOffset))
1786
- }
1787
1778
1788
1779
def typeDependingOn (location : Location ): Tree =
1789
1780
if location.inParens then typ()
@@ -3218,7 +3209,7 @@ object Parsers {
3218
3209
}
3219
3210
}
3220
3211
3221
- /** DefDef ::= DefSig [( ‘:’ | ‘<:’) Type] ‘=’ Expr
3212
+ /** DefDef ::= DefSig [‘:’ Type] ‘=’ Expr
3222
3213
* | this ParamClause ParamClauses `=' ConstrExpr
3223
3214
* DefDcl ::= DefSig `:' Type
3224
3215
* DefSig ::= id [DefTypeParamClause] DefParamClauses
@@ -3294,12 +3285,13 @@ object Parsers {
3294
3285
case rparamss =>
3295
3286
leadingVparamss ::: rparamss
3296
3287
var tpt = fromWithinReturnType {
3297
- if in.token == SUBTYPE && mods.is(Inline ) && AllowOldWhiteboxSyntax then
3298
- deprecationWarning(" `<:` return type will no longer be supported. Use transparent modifier instead." )
3299
- in.nextToken()
3300
- mods1 = addMod(mods1, Mod .Transparent ())
3301
- toplevelTyp()
3302
- else typedOpt()
3288
+ if in.token == COLONEOL then in.token = COLON
3289
+ // a hack to allow
3290
+ //
3291
+ // def f():
3292
+ // T
3293
+ //
3294
+ typedOpt()
3303
3295
}
3304
3296
if (migrateTo3) newLineOptWhenFollowedBy(LBRACE )
3305
3297
val rhs =
@@ -3532,7 +3524,7 @@ object Parsers {
3532
3524
syntaxError(i " extension clause can only define methods " , stat.span)
3533
3525
}
3534
3526
3535
- /** GivenDef ::= [GivenSig] [‘_’ ‘<:’] Type ‘=’ Expr
3527
+ /** GivenDef ::= [GivenSig] Type ‘=’ Expr
3536
3528
* | [GivenSig] ConstrApps [TemplateBody]
3537
3529
* GivenSig ::= [id] [DefTypeParamClause] {UsingParamClauses} ‘as’
3538
3530
*/
@@ -3552,30 +3544,19 @@ object Parsers {
3552
3544
newLinesOpt()
3553
3545
if isIdent(nme.as) || ! name.isEmpty || ! tparams.isEmpty || ! vparamss.isEmpty then
3554
3546
accept(nme.as)
3555
- def givenAlias (tpt : Tree ) =
3547
+ val parents = constrApps(commaOK = true , templateCanFollow = true )
3548
+ if in.token == EQUALS && parents.length == 1 && parents.head.isType then
3556
3549
accept(EQUALS )
3557
3550
mods1 |= Final
3558
- DefDef (name, tparams, vparamss, tpt, subExpr())
3559
- if in.token == USCORE && AllowOldWhiteboxSyntax then
3560
- deprecationWarning(" `<:` return type will no longer be supported. Use transparent modifier instead." )
3561
- if ! mods.is(Inline ) then
3562
- syntaxError(" `_ <:` is only allowed for given with `inline` modifier" )
3563
- in.nextToken()
3564
- accept(SUBTYPE )
3565
- mods1 = addMod(mods1, Mod .Transparent ())
3566
- givenAlias(toplevelTyp())
3551
+ DefDef (name, tparams, vparamss, parents.head, subExpr())
3567
3552
else
3568
- val parents = constrApps(commaOK = true , templateCanFollow = true )
3569
- if in.token == EQUALS && parents.length == 1 && parents.head.isType then
3570
- givenAlias(parents.head)
3571
- else
3572
- possibleTemplateStart()
3573
- val tparams1 = tparams.map(tparam => tparam.withMods(tparam.mods | PrivateLocal ))
3574
- val vparamss1 = vparamss.map(_.map(vparam =>
3575
- vparam.withMods(vparam.mods &~ Param | ParamAccessor | Protected )))
3576
- val templ = templateBodyOpt(makeConstructor(tparams1, vparamss1), parents, Nil )
3577
- if tparams.isEmpty && vparamss.isEmpty then ModuleDef (name, templ)
3578
- else TypeDef (name.toTypeName, templ)
3553
+ possibleTemplateStart()
3554
+ val tparams1 = tparams.map(tparam => tparam.withMods(tparam.mods | PrivateLocal ))
3555
+ val vparamss1 = vparamss.map(_.map(vparam =>
3556
+ vparam.withMods(vparam.mods &~ Param | ParamAccessor | Protected )))
3557
+ val templ = templateBodyOpt(makeConstructor(tparams1, vparamss1), parents, Nil )
3558
+ if tparams.isEmpty && vparamss.isEmpty then ModuleDef (name, templ)
3559
+ else TypeDef (name.toTypeName, templ)
3579
3560
end gdef
3580
3561
finalizeDef(gdef, mods1, start)
3581
3562
}
0 commit comments