| 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 part of analyzer2dart.element_converter; | 5 part of analyzer2dart.element_converter; |
| 6 | 6 |
| 7 | 7 |
| 8 /// Base [dart2js.Element] implementation for converted analyzer elements. | 8 /// Base [dart2js.Element] implementation for converted analyzer elements. |
| 9 class ElementY extends dart2js.Element { | 9 class ElementY extends dart2js.Element { |
| 10 final ElementConverter converter; | 10 final ElementConverter converter; |
| (...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 311 @override | 311 @override |
| 312 void recordResolvedTag(tag, library) => unsupported('recordResolvedTag'); | 312 void recordResolvedTag(tag, library) => unsupported('recordResolvedTag'); |
| 313 | 313 |
| 314 @override | 314 @override |
| 315 void setExports(exportedElements) => unsupported('setExports'); | 315 void setExports(exportedElements) => unsupported('setExports'); |
| 316 | 316 |
| 317 @override | 317 @override |
| 318 get tags => unsupported('tags'); | 318 get tags => unsupported('tags'); |
| 319 } | 319 } |
| 320 | 320 |
| 321 abstract class TopLevelElementMixin implements ElementY { |
| 322 @override |
| 323 bool get isClassMember => false; |
| 324 |
| 325 @override |
| 326 bool get isInstanceMember => false; |
| 327 |
| 328 @override |
| 329 bool get isTopLevel => true; |
| 330 |
| 331 // TODO(johnniwinther): Ensure the correct semantics of this. |
| 332 @override |
| 333 bool get isFactoryConstructor => false; |
| 334 |
| 335 @override |
| 336 bool get isStatic { |
| 337 // Semantic difference: Analyzer considers top-level and static class |
| 338 // members to be static, dart2js only considers static class members to be |
| 339 // static. |
| 340 return false; |
| 341 } |
| 342 |
| 343 // TODO(johnniwinther): Ensure the correct semantics of this. |
| 344 @override |
| 345 bool get isAbstract => false; |
| 346 } |
| 347 |
| 321 class TopLevelFunctionElementY extends ElementY | 348 class TopLevelFunctionElementY extends ElementY |
| 322 with AnalyzableElementY, AstElementY | 349 with AnalyzableElementY, AstElementY, TopLevelElementMixin |
| 323 implements dart2js.FunctionElement { | 350 implements dart2js.FunctionElement { |
| 324 analyzer.FunctionElement get element => super.element; | 351 analyzer.FunctionElement get element => super.element; |
| 325 | 352 |
| 326 dart2js.FunctionSignature _functionSignature; | 353 dart2js.FunctionSignature _functionSignature; |
| 327 | 354 |
| 328 // TODO(johnniwinther): Avoid the need for this. | 355 // TODO(johnniwinther): Avoid the need for this. |
| 329 dart2js.FunctionSignature get functionSignature { | 356 dart2js.FunctionSignature get functionSignature { |
| 330 if (_functionSignature == null) { | 357 if (_functionSignature == null) { |
| 331 util.LinkBuilder<dart2js.Element> parameterBuilder = | 358 util.LinkBuilder<dart2js.Element> parameterBuilder = |
| 332 new util.LinkBuilder<dart2js.Element>(); | 359 new util.LinkBuilder<dart2js.Element>(); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 348 const util.Link<dart2js.Element>(), | 375 const util.Link<dart2js.Element>(), |
| 349 parameterBuilder.length, 0, false, | 376 parameterBuilder.length, 0, false, |
| 350 parameters.toList(), | 377 parameters.toList(), |
| 351 new dart2js.FunctionType.synthesized( | 378 new dart2js.FunctionType.synthesized( |
| 352 converter.convertType(element.returnType), | 379 converter.convertType(element.returnType), |
| 353 parameterTypes)); | 380 parameterTypes)); |
| 354 } | 381 } |
| 355 return _functionSignature; | 382 return _functionSignature; |
| 356 } | 383 } |
| 357 | 384 |
| 358 | |
| 359 // TODO(johnniwinther): Ensure the correct semantics of this. | |
| 360 @override | |
| 361 bool get isFactoryConstructor => false; | |
| 362 | |
| 363 @override | |
| 364 bool get isStatic { | |
| 365 // Semantic difference: Analyzer considers top-level and static class | |
| 366 // members to be static, dart2js only considers static class members to be | |
| 367 // static. | |
| 368 return false; | |
| 369 } | |
| 370 | |
| 371 // TODO(johnniwinther): Ensure the correct semantics of this. | |
| 372 @override | |
| 373 bool get isAbstract => false; | |
| 374 | |
| 375 @override | 385 @override |
| 376 dart2js.ElementKind get kind => dart2js.ElementKind.FUNCTION; | 386 dart2js.ElementKind get kind => dart2js.ElementKind.FUNCTION; |
| 377 | 387 |
| 378 @override | |
| 379 bool get isClassMember => false; | |
| 380 | |
| 381 @override | |
| 382 bool get isInstanceMember => false; | |
| 383 | |
| 384 @override | |
| 385 bool get isTopLevel => true; | |
| 386 | |
| 387 TopLevelFunctionElementY(ElementConverter converter, | 388 TopLevelFunctionElementY(ElementConverter converter, |
| 388 analyzer.FunctionElement element) | 389 analyzer.FunctionElement element) |
| 389 : super(converter, element); | 390 : super(converter, element); |
| 390 | 391 |
| 391 @override | 392 @override |
| 392 get abstractField => unsupported('abstractField'); | 393 get abstractField => unsupported('abstractField'); |
| 393 | 394 |
| 394 @override | 395 @override |
| 395 computeSignature(_) => unsupported('computeSignature'); | 396 computeSignature(_) => unsupported('computeSignature'); |
| 396 | 397 |
| (...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 648 : super(converter, element); | 649 : super(converter, element); |
| 649 | 650 |
| 650 @override | 651 @override |
| 651 dart2js.DartType get alias => unsupported('alias'); | 652 dart2js.DartType get alias => unsupported('alias'); |
| 652 | 653 |
| 653 @override | 654 @override |
| 654 void checkCyclicReference(compiler) => unsupported('checkCyclicReference'); | 655 void checkCyclicReference(compiler) => unsupported('checkCyclicReference'); |
| 655 | 656 |
| 656 @override | 657 @override |
| 657 get functionSignature => unsupported('functionSignature'); | 658 get functionSignature => unsupported('functionSignature'); |
| 659 } |
| 660 |
| 661 class TopLevelVariableElementY extends ElementY |
| 662 with AnalyzableElementY, AstElementY, TopLevelElementMixin |
| 663 implements dart2js.FieldElement { |
| 664 |
| 665 analyzer.TopLevelVariableElement get element => super.element; |
| 666 |
| 667 dart2js.ElementKind get kind => dart2js.ElementKind.FIELD; |
| 668 |
| 669 @override |
| 670 dart2js.DartType get type => converter.convertType(element.type); |
| 671 |
| 672 TopLevelVariableElementY(ElementConverter converter, |
| 673 analyzer.TopLevelVariableElement element) |
| 674 : super(converter, element); |
| 675 |
| 676 @override |
| 677 get initializer => unsupported('initializer'); |
| 678 |
| 679 @override |
| 680 get memberContext => unsupported('memberContext'); |
| 681 |
| 682 @override |
| 683 get nestedClosures => unsupported('nestedClosures'); |
| 658 } | 684 } |
| OLD | NEW |