OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 /** | 5 /** |
6 * Defines element visitors that support useful patterns for visiting the | 6 * Defines element visitors that support useful patterns for visiting the |
7 * elements in an [element model](element.dart). | 7 * elements in an [element model](element.dart). |
8 * | 8 * |
9 * Dart is an evolving language, and the element model must evolved with it. | 9 * Dart is an evolving language, and the element model must evolved with it. |
10 * When the element model changes, the visitor interface will sometimes change | 10 * When the element model changes, the visitor interface will sometimes change |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
122 visitElement(element); | 122 visitElement(element); |
123 | 123 |
124 @override | 124 @override |
125 R visitGenericFunctionTypeElement(GenericFunctionTypeElement element) => | 125 R visitGenericFunctionTypeElement(GenericFunctionTypeElement element) => |
126 visitElement(element); | 126 visitElement(element); |
127 | 127 |
128 @override | 128 @override |
129 R visitImportElement(ImportElement element) => visitElement(element); | 129 R visitImportElement(ImportElement element) => visitElement(element); |
130 | 130 |
131 @override | 131 @override |
132 R visitLabelElement(LabelElement element) => visitElement(element); | |
133 | |
134 @override | |
135 R visitLibraryElement(LibraryElement element) => visitElement(element); | 132 R visitLibraryElement(LibraryElement element) => visitElement(element); |
136 | 133 |
137 R visitLocalElement(LocalElement element) { | 134 R visitLocalElement(LocalElement element) { |
138 if (element is LocalVariableElement) { | 135 if (element is LocalVariableElement) { |
139 return visitVariableElement(element); | 136 return visitVariableElement(element); |
140 } else if (element is ParameterElement) { | 137 } else if (element is ParameterElement) { |
141 return visitVariableElement(element); | 138 return visitVariableElement(element); |
142 } else if (element is FunctionElement) { | 139 } else if (element is FunctionElement) { |
143 return visitExecutableElement(element); | 140 return visitExecutableElement(element); |
144 } | 141 } |
145 return null; | 142 return null; |
146 } | 143 } |
147 | 144 |
148 @override | 145 @override |
149 R visitLocalVariableElement(LocalVariableElement element) => | |
150 visitLocalElement(element); | |
151 | |
152 @override | |
153 R visitMethodElement(MethodElement element) => | 146 R visitMethodElement(MethodElement element) => |
154 visitExecutableElement(element); | 147 visitExecutableElement(element); |
155 | 148 |
156 @override | 149 @override |
157 R visitMultiplyDefinedElement(MultiplyDefinedElement element) => | 150 R visitMultiplyDefinedElement(MultiplyDefinedElement element) => |
158 visitElement(element); | 151 visitElement(element); |
159 | 152 |
160 @override | 153 @override |
161 R visitParameterElement(ParameterElement element) => | 154 R visitParameterElement(ParameterElement element) => |
162 visitLocalElement(element); | 155 visitLocalElement(element); |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
250 return null; | 243 return null; |
251 } | 244 } |
252 | 245 |
253 @override | 246 @override |
254 R visitImportElement(ImportElement element) { | 247 R visitImportElement(ImportElement element) { |
255 element.visitChildren(this); | 248 element.visitChildren(this); |
256 return null; | 249 return null; |
257 } | 250 } |
258 | 251 |
259 @override | 252 @override |
260 R visitLabelElement(LabelElement element) { | |
261 element.visitChildren(this); | |
262 return null; | |
263 } | |
264 | |
265 @override | |
266 R visitLibraryElement(LibraryElement element) { | 253 R visitLibraryElement(LibraryElement element) { |
267 element.visitChildren(this); | 254 element.visitChildren(this); |
268 return null; | 255 return null; |
269 } | 256 } |
270 | 257 |
271 @override | 258 @override |
272 R visitLocalVariableElement(LocalVariableElement element) { | |
273 element.visitChildren(this); | |
274 return null; | |
275 } | |
276 | |
277 @override | |
278 R visitMethodElement(MethodElement element) { | 259 R visitMethodElement(MethodElement element) { |
279 element.visitChildren(this); | 260 element.visitChildren(this); |
280 return null; | 261 return null; |
281 } | 262 } |
282 | 263 |
283 @override | 264 @override |
284 R visitMultiplyDefinedElement(MultiplyDefinedElement element) { | 265 R visitMultiplyDefinedElement(MultiplyDefinedElement element) { |
285 element.visitChildren(this); | 266 element.visitChildren(this); |
286 return null; | 267 return null; |
287 } | 268 } |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
351 @override | 332 @override |
352 R visitFunctionTypeAliasElement(FunctionTypeAliasElement element) => null; | 333 R visitFunctionTypeAliasElement(FunctionTypeAliasElement element) => null; |
353 | 334 |
354 @override | 335 @override |
355 R visitGenericFunctionTypeElement(GenericFunctionTypeElement element) => null; | 336 R visitGenericFunctionTypeElement(GenericFunctionTypeElement element) => null; |
356 | 337 |
357 @override | 338 @override |
358 R visitImportElement(ImportElement element) => null; | 339 R visitImportElement(ImportElement element) => null; |
359 | 340 |
360 @override | 341 @override |
361 R visitLabelElement(LabelElement element) => null; | |
362 | |
363 @override | |
364 R visitLibraryElement(LibraryElement element) => null; | 342 R visitLibraryElement(LibraryElement element) => null; |
365 | 343 |
366 @override | 344 @override |
367 R visitLocalVariableElement(LocalVariableElement element) => null; | |
368 | |
369 @override | |
370 R visitMethodElement(MethodElement element) => null; | 345 R visitMethodElement(MethodElement element) => null; |
371 | 346 |
372 @override | 347 @override |
373 R visitMultiplyDefinedElement(MultiplyDefinedElement element) => null; | 348 R visitMultiplyDefinedElement(MultiplyDefinedElement element) => null; |
374 | 349 |
375 @override | 350 @override |
376 R visitParameterElement(ParameterElement element) => null; | 351 R visitParameterElement(ParameterElement element) => null; |
377 | 352 |
378 @override | 353 @override |
379 R visitPrefixElement(PrefixElement element) => null; | 354 R visitPrefixElement(PrefixElement element) => null; |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
426 _throw(element); | 401 _throw(element); |
427 | 402 |
428 @override | 403 @override |
429 R visitGenericFunctionTypeElement(GenericFunctionTypeElement element) => | 404 R visitGenericFunctionTypeElement(GenericFunctionTypeElement element) => |
430 _throw(element); | 405 _throw(element); |
431 | 406 |
432 @override | 407 @override |
433 R visitImportElement(ImportElement element) => _throw(element); | 408 R visitImportElement(ImportElement element) => _throw(element); |
434 | 409 |
435 @override | 410 @override |
436 R visitLabelElement(LabelElement element) => _throw(element); | |
437 | |
438 @override | |
439 R visitLibraryElement(LibraryElement element) => _throw(element); | 411 R visitLibraryElement(LibraryElement element) => _throw(element); |
440 | 412 |
441 @override | 413 @override |
442 R visitLocalVariableElement(LocalVariableElement element) => _throw(element); | |
443 | |
444 @override | |
445 R visitMethodElement(MethodElement element) => _throw(element); | 414 R visitMethodElement(MethodElement element) => _throw(element); |
446 | 415 |
447 @override | 416 @override |
448 R visitMultiplyDefinedElement(MultiplyDefinedElement element) => | 417 R visitMultiplyDefinedElement(MultiplyDefinedElement element) => |
449 _throw(element); | 418 _throw(element); |
450 | 419 |
451 @override | 420 @override |
452 R visitParameterElement(ParameterElement element) => _throw(element); | 421 R visitParameterElement(ParameterElement element) => _throw(element); |
453 | 422 |
454 @override | 423 @override |
455 R visitPrefixElement(PrefixElement element) => _throw(element); | 424 R visitPrefixElement(PrefixElement element) => _throw(element); |
456 | 425 |
457 @override | 426 @override |
458 R visitPropertyAccessorElement(PropertyAccessorElement element) => | 427 R visitPropertyAccessorElement(PropertyAccessorElement element) => |
459 _throw(element); | 428 _throw(element); |
460 | 429 |
461 @override | 430 @override |
462 R visitTopLevelVariableElement(TopLevelVariableElement element) => | 431 R visitTopLevelVariableElement(TopLevelVariableElement element) => |
463 _throw(element); | 432 _throw(element); |
464 | 433 |
465 @override | 434 @override |
466 R visitTypeParameterElement(TypeParameterElement element) => _throw(element); | 435 R visitTypeParameterElement(TypeParameterElement element) => _throw(element); |
467 | 436 |
468 R _throw(Element element) { | 437 R _throw(Element element) { |
469 throw new Exception( | 438 throw new Exception( |
470 'Missing implementation of visit${element.runtimeType}'); | 439 'Missing implementation of visit${element.runtimeType}'); |
471 } | 440 } |
472 } | 441 } |
OLD | NEW |