@@ -140,7 +140,7 @@ type val var while with yield
140
140
### Soft keywords
141
141
142
142
```
143
- as derives end extension infix inline opaque open throws transparent using | * + -
143
+ as derives end erased extension infix inline opaque open throws transparent using | * + -
144
144
```
145
145
146
146
See the [ separate section on soft keywords] ( ../reference/soft-modifier.md ) for additional
@@ -180,13 +180,13 @@ Type ::= FunType
180
180
| FunParamClause ‘=>>’ Type TermLambdaTypeTree(ps, t)
181
181
| MatchType
182
182
| InfixType
183
- FunType ::= FunTypeArgs (‘=>’ | ‘?=>’) Type Function(ts, t)
183
+ FunType ::= FunTypeArgs (‘=>’ | ‘?=>’) Type Function(ts, t) | FunctionWithMods(ts, t, mods, erasedParams)
184
184
| HKTypeParamClause '=>' Type PolyFunction(ps, t)
185
185
FunTypeArgs ::= InfixType
186
186
| ‘(’ [ FunArgTypes ] ‘)’
187
187
| FunParamClause
188
188
FunParamClause ::= ‘(’ TypedFunParam {‘,’ TypedFunParam } ‘)’
189
- TypedFunParam ::= id ‘:’ Type
189
+ TypedFunParam ::= [`erased`] id ‘:’ Type
190
190
MatchType ::= InfixType `match` <<< TypeCaseClauses >>>
191
191
InfixType ::= RefinedType {id [nl] RefinedType} InfixOp(t1, op, t2)
192
192
RefinedType ::= AnnotType {[nl] Refinement} RefinedTypeTree(t, ds)
@@ -207,8 +207,8 @@ Singleton ::= SimpleRef
207
207
| SimpleLiteral
208
208
| Singleton ‘.’ id
209
209
Singletons ::= Singleton { ‘,’ Singleton }
210
- FunArgType ::= Type
211
- | ‘=>’ Type PrefixOp(=>, t)
210
+ FunArgType ::= [`erased`] Type
211
+ | [`erased`] ‘=>’ Type PrefixOp(=>, t)
212
212
FunArgTypes ::= FunArgType { ‘,’ FunArgType }
213
213
ParamType ::= [‘=>’] ParamValueType
214
214
ParamValueType ::= [‘into’] ExactParamType Into(t)
@@ -229,7 +229,7 @@ BlockResult ::= FunParams (‘=>’ | ‘?=>’) Block
229
229
| HkTypeParamClause ‘=>’ Block
230
230
| Expr1
231
231
FunParams ::= Bindings
232
- | id
232
+ | [`erased`] id
233
233
| ‘_’
234
234
Expr1 ::= [‘inline’] ‘if’ ‘(’ Expr ‘)’ {nl} Expr [[semi] ‘else’ Expr] If(Parens(cond), thenp, elsep?)
235
235
| [‘inline’] ‘if’ Expr ‘then’ Expr [[semi] ‘else’ Expr] If(cond, thenp, elsep?)
@@ -369,12 +369,12 @@ DefParamClauses ::= {DefParamClause} [[nl] ‘(’ [‘implicit’] DefParams
369
369
DefParamClause ::= [nl] ‘(’ DefParams ‘)’ | UsingParamClause
370
370
UsingParamClause ::= [nl] ‘(’ ‘using’ (DefParams | FunArgTypes) ‘)’
371
371
DefParams ::= DefParam {‘,’ DefParam}
372
- DefParam ::= {Annotation} [‘inline’] Param ValDef(mods, id, tpe, expr) -- point of mods at id.
372
+ DefParam ::= {Annotation} [`erased`] [ ‘inline’] Param ValDef(mods, id, tpe, expr) -- point of mods at id.
373
373
```
374
374
375
375
### Bindings and Imports
376
376
``` ebnf
377
- Bindings ::= ‘(’ [Binding {‘,’ Binding}] ‘)’
377
+ Bindings ::= ‘(’[`erased`] [Binding {‘,’ [`erased`] Binding}] ‘)’
378
378
Binding ::= (id | ‘_’) [‘:’ Type] ValDef(_, id, tpe, EmptyTree)
379
379
380
380
Modifier ::= LocalModifier
0 commit comments