41
41
% version of the language which will actually be specified by the next stable
42
42
% release of this document.
43
43
%
44
+ % Oct 2023
45
+ % - Introduce the rule that an `extension` declaration cannot have the name
46
+ % `type`. This is needed in order to disambiguate an `extension type`
47
+ % named `on`.
48
+ %
44
49
% Aug 2023
45
50
% - Correct text about built-in identifier error and turn it into commentary
46
51
% (the normative text is in grammar rules using `typeIdentifier`), and
@@ -6083,8 +6088,8 @@ \section{Extensions}
6083
6088
and whether the invocation satisfies several other requirements.
6084
6089
6085
6090
\begin{grammar}
6086
- <extensionDeclaration> ::=
6087
- \gnewline{} \ EXTENSION{} <typeIdentifier >? <typeParameters>? \ON{} <type>
6091
+ <extensionDeclaration> ::= \gnewline{}
6092
+ \EXTENSION{} <typeIdentifierNotType >? <typeParameters>? \ON{} <type>
6088
6093
\gnewline{} `\{' (<metadata> <classMemberDeclaration>)* `\}'
6089
6094
\end{grammar}
6090
6095
@@ -17154,10 +17159,13 @@ \subsection{Identifier Reference}
17154
17159
\alt <BUILT\_IN\_IDENTIFIER>
17155
17160
\alt <OTHER\_IDENTIFIER>
17156
17161
17157
- <typeIdentifier > ::= <IDENTIFIER>
17158
- \alt <OTHER\_IDENTIFIER>
17162
+ <typeIdentifierNotType > ::= <IDENTIFIER>
17163
+ \alt <OTHER\_IDENTIFIER\_NOT\_TYPE >
17159
17164
\alt \DYNAMIC{}
17160
17165
17166
+ <typeIdentifier> ::= <typeIdentifierNotType>
17167
+ \alt \TYPE{}
17168
+
17161
17169
<qualifiedName> ::= <typeIdentifier> `.' <identifier>
17162
17170
\alt <typeIdentifier> `.' <typeIdentifier> `.' <identifier>
17163
17171
@@ -17168,10 +17176,13 @@ \subsection{Identifier Reference}
17168
17176
\LIBRARY{} | \MIXIN{} | \OPERATOR{}
17169
17177
\alt\hspace{-3mm} \PART{} | \REQUIRED{} | \SET{} | \STATIC{} | \TYPEDEF{}
17170
17178
17171
- <OTHER\_IDENTIFIER> ::= \gnewline{}
17179
+ <OTHER\_IDENTIFIER\_NOT\_TYPE > ::= \gnewline{}
17172
17180
\ASYNC{} | \HIDE{} | \OF{} | \ON{} | \SHOW{} | \SYNC{} |
17173
17181
\AWAIT{} | \YIELD{}
17174
17182
17183
+ <OTHER\_IDENTIFIER> ::= \gnewline{}
17184
+ <OTHER\_IDENTIFIER\_NOT\_TYPE> | \TYPE{}
17185
+
17175
17186
<IDENTIFIER\_NO\_DOLLAR> ::= <IDENTIFIER\_START\_NO\_DOLLAR>
17176
17187
\gnewline{} <IDENTIFIER\_PART\_NO\_DOLLAR>*
17177
17188
0 commit comments