@@ -92,20 +92,20 @@ semi ::= ‘;’ | nl {nl}
9292### Regular keywords
9393
9494```
95- abstract case catch class def delegate do else
96- enum export extends false final finally for given
97- if implicit import lazy match new null object
98- package private protected override return super sealed then
99- throw trait true try type val var while
100- with yield
95+ abstract case catch class def do else enum
96+ export extends false final finally for given if
97+ implicit import lazy match new null object package
98+ private protected override return super sealed then throw
99+ trait true try type val var while with
100+ yield
101101: = <- => <: :> # @
102102=>>
103103```
104104
105105### Soft keywords
106106
107107```
108- derives inline opaque
108+ as derives inline opaque
109109~ * | & + -
110110```
111111
@@ -203,7 +203,7 @@ Expr1 ::= ‘if’ ‘(’ Expr ‘)’ {nl}
203203 | SimpleExpr1 ArgumentExprs ‘=’ Expr Assign(expr, expr)
204204 | Expr2
205205 | [‘inline’] Expr2 ‘match’ ‘{’ CaseClauses ‘}’ Match(expr, cases) -- point on match
206- | ‘implicit ’ ‘match’ ‘{’ ImplicitCaseClauses ‘}’
206+ | ‘given ’ ‘match’ ‘{’ ImplicitCaseClauses ‘}’
207207Expr2 ::= PostfixExpr [Ascription]
208208Ascription ::= ‘:’ InfixType Typed(expr, tp)
209209 | ‘:’ Annotation {Annotation} Typed(expr, Annotated(EmptyTree, annot)*)
@@ -336,14 +336,14 @@ AccessQualifier ::= ‘[’ (id | ‘this’) ‘]’
336336
337337Annotation ::= ‘@’ SimpleType {ParArgumentExprs} Apply(tpe, args)
338338
339- Import ::= ‘import’ [‘delegate ’] ImportExpr {‘,’ ImportExpr}
339+ Import ::= ‘import’ [‘given ’] ImportExpr {‘,’ ImportExpr}
340340ImportExpr ::= StableId ‘.’ (id | ‘_’ | ImportSelectors) Import(expr, sels)
341341ImportSelectors ::= ‘{’ {ImportSelector ‘,’} FinalSelector ‘}’
342342FinalSelector ::= ImportSelector Ident(name)
343343 | ‘_’ Pair(id, id)
344344 | ‘for’ InfixType {‘,’ InfixType} TypeBoundsTree(EmptyTree, tpt)
345345ImportSelector ::= id [‘=>’ id | ‘=>’ ‘_’]
346- Export ::= ‘export’ [‘delegate ’] ImportExpr {‘,’ ImportExpr}
346+ Export ::= ‘export’ [‘given ’] ImportExpr {‘,’ ImportExpr}
347347```
348348
349349### Declarations and Definitions
@@ -379,16 +379,16 @@ DefDef ::= DefSig [(‘:’ | ‘<:’) Type] ‘=’ Expr
379379TmplDef ::= ([‘case’] ‘class’ | ‘trait’) ClassDef
380380 | [‘case’] ‘object’ ObjectDef
381381 | ‘enum’ EnumDef
382- | ‘delegate’ DelegateDef
382+ | ‘given’ GivenDef
383383 | Export
384384ClassDef ::= id ClassConstr [Template] ClassDef(mods, name, tparams, templ)
385385ClassConstr ::= [ClsTypeParamClause] [ConstrMods] ClsParamClauses with DefDef(_, <init>, Nil, vparamss, EmptyTree, EmptyTree) as first stat
386386ConstrMods ::= {Annotation} [AccessModifier]
387387ObjectDef ::= id [Template] ModuleDef(mods, name, template) // no constructor
388388EnumDef ::= id ClassConstr InheritClauses EnumBody EnumDef(mods, name, tparams, template)
389- DelegateDef ::= [id] [DefTypeParamClause] DelegateBody
390- DelegateBody ::= [‘for’ ConstrApp {‘,’ ConstrApp }] {GivenParamClause} [TemplateBody]
391- | ‘for ’ Type {GivenParamClause} ‘=’ Expr
389+ GivenDef ::= [id] [DefTypeParamClause] GivenBody
390+ GivenBody ::= [‘as ConstrApp {‘,’ ConstrApp }] {GivenParamClause} [TemplateBody]
391+ | ‘as ’ Type {GivenParamClause} ‘=’ Expr
392392Template ::= InheritClauses [TemplateBody] Template(constr, parents, self, stats)
393393InheritClauses ::= [‘extends’ ConstrApps] [‘derives’ QualId {‘,’ QualId}]
394394ConstrApps ::= ConstrApp {‘with’ ConstrApp}
0 commit comments