@@ -126,60 +126,13 @@ class NodeListener extends ElementListener {
126
126
}
127
127
128
128
@override
129
- void endFunctionTypeAlias (
130
- Token typedefKeyword, Token equals, Token endToken) {
131
- bool isGeneralizedTypeAlias;
132
- NodeList templateParameters;
133
- TypeAnnotation returnType;
134
- Identifier name;
135
- NodeList typeParameters;
136
- NodeList formals;
137
- if (equals == null ) {
138
- isGeneralizedTypeAlias = false ;
139
- formals = popNode ();
140
- templateParameters = popNode ();
141
- name = popNode ();
142
- returnType = popNode ();
143
- } else {
144
- // TODO(floitsch): keep using the `FunctionTypeAnnotation' node.
145
- isGeneralizedTypeAlias = true ;
146
- Node type = popNode ();
147
- if (type.asFunctionTypeAnnotation () == null ) {
148
- // TODO(floitsch): The parser should diagnose this problem, not
149
- // this listener.
150
- // However, this problem goes away, when we allow aliases for
151
- // non-function types too.
152
- reportFatalError (type, 'Expected a function type.' );
153
- }
154
- FunctionTypeAnnotation functionType = type;
155
- templateParameters = popNode ();
156
- name = popNode ();
157
- returnType = functionType.returnType;
158
- typeParameters = functionType.typeParameters;
159
- formals = functionType.formals;
160
- }
161
- pushNode (new Typedef (
162
- isGeneralizedTypeAlias,
163
- templateParameters,
164
- returnType,
165
- name,
166
- typeParameters,
167
- formals,
168
- typedefKeyword,
169
- endToken));
170
- }
171
-
172
- void handleNoName (Token token) {
173
- pushNode (null );
174
- }
175
-
176
- @override
177
- void handleFunctionType (Token functionToken, Token endToken) {
129
+ void endFunctionTypeAlias (Token typedefKeyword, Token endToken) {
178
130
NodeList formals = popNode ();
179
131
NodeList typeParameters = popNode ();
132
+ Identifier name = popNode ();
180
133
TypeAnnotation returnType = popNode ();
181
- pushNode (new FunctionTypeAnnotation (
182
- returnType, functionToken , typeParameters, formals));
134
+ pushNode (new Typedef (
135
+ returnType, name , typeParameters, formals, typedefKeyword, endToken ));
183
136
}
184
137
185
138
@override
@@ -276,7 +229,7 @@ class NodeListener extends ElementListener {
276
229
NodeList typeArguments = popNode ();
277
230
Node classReference = popNode ();
278
231
if (typeArguments != null ) {
279
- classReference = new NominalTypeAnnotation (classReference, typeArguments);
232
+ classReference = new TypeAnnotation (classReference, typeArguments);
280
233
} else {
281
234
Identifier identifier = classReference.asIdentifier ();
282
235
Send send = classReference.asSend ();
@@ -914,7 +867,7 @@ class NodeListener extends ElementListener {
914
867
NodeList typeArguments = popNode ();
915
868
Node receiver = popNode ();
916
869
if (typeArguments != null ) {
917
- receiver = new NominalTypeAnnotation (receiver, typeArguments);
870
+ receiver = new TypeAnnotation (receiver, typeArguments);
918
871
recoverableError (typeArguments, 'Type arguments are not allowed here.' );
919
872
} else {
920
873
Identifier identifier = receiver.asIdentifier ();
0 commit comments