@@ -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 {
@@ -1822,16 +1820,9 @@ object Parsers {
1822
1820
Nil
1823
1821
}
1824
1822
1825
- def typedOpt (): Tree = {
1826
- if (in.token == COLONEOL ) in.token = COLON
1827
- // a hack to allow
1828
- //
1829
- // def f():
1830
- // T
1831
- //
1823
+ def typedOpt (): Tree =
1832
1824
if (in.token == COLON ) { in.nextToken(); toplevelTyp() }
1833
1825
else TypeTree ().withSpan(Span (in.lastOffset))
1834
- }
1835
1826
1836
1827
def typeDependingOn (location : Location ): Tree =
1837
1828
if location.inParens then typ()
@@ -3266,7 +3257,7 @@ object Parsers {
3266
3257
}
3267
3258
}
3268
3259
3269
- /** DefDef ::= DefSig [( ‘:’ | ‘<:’) Type] ‘=’ Expr
3260
+ /** DefDef ::= DefSig [‘:’ Type] ‘=’ Expr
3270
3261
* | this ParamClause ParamClauses `=' ConstrExpr
3271
3262
* DefDcl ::= DefSig `:' Type
3272
3263
* DefSig ::= id [DefTypeParamClause] DefParamClauses
@@ -3342,12 +3333,13 @@ object Parsers {
3342
3333
case rparamss =>
3343
3334
leadingVparamss ::: rparamss
3344
3335
var tpt = fromWithinReturnType {
3345
- if in.token == SUBTYPE && mods.is(Inline ) && AllowOldWhiteboxSyntax then
3346
- deprecationWarning(" `<:` return type will no longer be supported. Use transparent modifier instead." )
3347
- in.nextToken()
3348
- mods1 = addMod(mods1, Mod .Transparent ())
3349
- toplevelTyp()
3350
- else typedOpt()
3336
+ if in.token == COLONEOL then in.token = COLON
3337
+ // a hack to allow
3338
+ //
3339
+ // def f():
3340
+ // T
3341
+ //
3342
+ typedOpt()
3351
3343
}
3352
3344
if (migrateTo3) newLineOptWhenFollowedBy(LBRACE )
3353
3345
val rhs =
@@ -3581,7 +3573,7 @@ object Parsers {
3581
3573
syntaxError(i " extension clause can only define methods " , stat.span)
3582
3574
}
3583
3575
3584
- /** GivenDef ::= [GivenSig] [‘_’ ‘<:’] Type ‘=’ Expr
3576
+ /** GivenDef ::= [GivenSig] Type ‘=’ Expr
3585
3577
* | [GivenSig] ConstrApps [TemplateBody]
3586
3578
* GivenSig ::= [id] [DefTypeParamClause] {UsingParamClauses} ‘as’
3587
3579
*/
@@ -3601,30 +3593,19 @@ object Parsers {
3601
3593
newLinesOpt()
3602
3594
if isIdent(nme.as) || ! name.isEmpty || ! tparams.isEmpty || ! vparamss.isEmpty then
3603
3595
accept(nme.as)
3604
- def givenAlias (tpt : Tree ) =
3596
+ val parents = constrApps(commaOK = true , templateCanFollow = true )
3597
+ if in.token == EQUALS && parents.length == 1 && parents.head.isType then
3605
3598
accept(EQUALS )
3606
3599
mods1 |= Final
3607
- DefDef (name, tparams, vparamss, tpt, subExpr())
3608
- if in.token == USCORE && AllowOldWhiteboxSyntax then
3609
- deprecationWarning(" `<:` return type will no longer be supported. Use transparent modifier instead." )
3610
- if ! mods.is(Inline ) then
3611
- syntaxError(" `_ <:` is only allowed for given with `inline` modifier" )
3612
- in.nextToken()
3613
- accept(SUBTYPE )
3614
- mods1 = addMod(mods1, Mod .Transparent ())
3615
- givenAlias(toplevelTyp())
3600
+ DefDef (name, tparams, vparamss, parents.head, subExpr())
3616
3601
else
3617
- val parents = constrApps(commaOK = true , templateCanFollow = true )
3618
- if in.token == EQUALS && parents.length == 1 && parents.head.isType then
3619
- givenAlias(parents.head)
3620
- else
3621
- possibleTemplateStart()
3622
- val tparams1 = tparams.map(tparam => tparam.withMods(tparam.mods | PrivateLocal ))
3623
- val vparamss1 = vparamss.map(_.map(vparam =>
3624
- vparam.withMods(vparam.mods &~ Param | ParamAccessor | Protected )))
3625
- val templ = templateBodyOpt(makeConstructor(tparams1, vparamss1), parents, Nil )
3626
- if tparams.isEmpty && vparamss.isEmpty then ModuleDef (name, templ)
3627
- else TypeDef (name.toTypeName, templ)
3602
+ possibleTemplateStart()
3603
+ val tparams1 = tparams.map(tparam => tparam.withMods(tparam.mods | PrivateLocal ))
3604
+ val vparamss1 = vparamss.map(_.map(vparam =>
3605
+ vparam.withMods(vparam.mods &~ Param | ParamAccessor | Protected )))
3606
+ val templ = templateBodyOpt(makeConstructor(tparams1, vparamss1), parents, Nil )
3607
+ if tparams.isEmpty && vparamss.isEmpty then ModuleDef (name, templ)
3608
+ else TypeDef (name.toTypeName, templ)
3628
3609
end gdef
3629
3610
finalizeDef(gdef, mods1, start)
3630
3611
}
0 commit comments