| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 /// Implementation of the element model used for deserialiation. | 5 /// Implementation of the element model used for deserialiation. |
| 6 /// | 6 /// |
| 7 /// These classes are created by [ElementDeserializer] triggered by the | 7 /// These classes are created by [ElementDeserializer] triggered by the |
| 8 /// [Deserializer]. | 8 /// [Deserializer]. |
| 9 | 9 |
| 10 library dart2js.serialization.modelz; | 10 library dart2js.serialization.modelz; |
| 11 | 11 |
| 12 import '../common.dart'; | 12 import '../common.dart'; |
| 13 import '../common/resolution.dart' show | 13 import '../common/resolution.dart' show Resolution; |
| 14 Resolution; | |
| 15 import '../constants/constructors.dart'; | 14 import '../constants/constructors.dart'; |
| 16 import '../constants/expressions.dart'; | 15 import '../constants/expressions.dart'; |
| 17 import '../core_types.dart'; | 16 import '../core_types.dart'; |
| 18 import '../dart_types.dart'; | 17 import '../dart_types.dart'; |
| 19 import '../elements/elements.dart'; | 18 import '../elements/elements.dart'; |
| 20 import '../elements/modelx.dart' show | 19 import '../elements/modelx.dart' show FunctionSignatureX; |
| 21 FunctionSignatureX; | |
| 22 import '../elements/common.dart'; | 20 import '../elements/common.dart'; |
| 23 import '../elements/visitor.dart'; | 21 import '../elements/visitor.dart'; |
| 24 import '../io/source_file.dart'; | 22 import '../io/source_file.dart'; |
| 25 import '../ordered_typeset.dart'; | 23 import '../ordered_typeset.dart'; |
| 26 import '../resolution/class_members.dart' as class_members; | 24 import '../resolution/class_members.dart' as class_members; |
| 27 import '../resolution/tree_elements.dart' show | 25 import '../resolution/tree_elements.dart' show TreeElements; |
| 28 TreeElements; | 26 import '../resolution/scope.dart' show Scope; |
| 29 import '../resolution/scope.dart' show | |
| 30 Scope; | |
| 31 import '../script.dart'; | 27 import '../script.dart'; |
| 32 import '../serialization/constant_serialization.dart'; | 28 import '../serialization/constant_serialization.dart'; |
| 33 import '../tokens/token.dart' show | 29 import '../tokens/token.dart' show Token; |
| 34 Token; | |
| 35 import '../tree/tree.dart'; | 30 import '../tree/tree.dart'; |
| 36 import '../util/util.dart' show | 31 import '../util/util.dart' show Link, LinkBuilder; |
| 37 Link, | |
| 38 LinkBuilder; | |
| 39 | 32 |
| 40 import 'keys.dart'; | 33 import 'keys.dart'; |
| 41 import 'serialization.dart'; | 34 import 'serialization.dart'; |
| 42 | 35 |
| 43 /// Compute a [Link] from an [Iterable]. | 36 /// Compute a [Link] from an [Iterable]. |
| 44 Link toLink(Iterable iterable) { | 37 Link toLink(Iterable iterable) { |
| 45 LinkBuilder builder = new LinkBuilder(); | 38 LinkBuilder builder = new LinkBuilder(); |
| 46 for (var element in iterable) { | 39 for (var element in iterable) { |
| 47 builder.addLast(element); | 40 builder.addLast(element); |
| 48 } | 41 } |
| (...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 252 } | 245 } |
| 253 } | 246 } |
| 254 | 247 |
| 255 Element lookup(String name) => _lookupMap[name]; | 248 Element lookup(String name) => _lookupMap[name]; |
| 256 | 249 |
| 257 void forEach(f(Element element)) => _lookupMap.values.forEach(f); | 250 void forEach(f(Element element)) => _lookupMap.values.forEach(f); |
| 258 | 251 |
| 259 Iterable<Element> get values => _lookupMap.values; | 252 Iterable<Element> get values => _lookupMap.values; |
| 260 } | 253 } |
| 261 | 254 |
| 262 | |
| 263 abstract class AnalyzableElementMixin implements AnalyzableElement, ElementZ { | 255 abstract class AnalyzableElementMixin implements AnalyzableElement, ElementZ { |
| 264 @override | 256 @override |
| 265 bool get hasTreeElements => _unsupported('hasTreeElements'); | 257 bool get hasTreeElements => _unsupported('hasTreeElements'); |
| 266 | 258 |
| 267 @override | 259 @override |
| 268 TreeElements get treeElements => _unsupported('treeElements'); | 260 TreeElements get treeElements => _unsupported('treeElements'); |
| 269 } | 261 } |
| 270 | 262 |
| 271 | |
| 272 abstract class AstElementMixin implements AstElement, ElementZ { | 263 abstract class AstElementMixin implements AstElement, ElementZ { |
| 273 @override | 264 @override |
| 274 bool get hasNode => _unsupported('hasNode'); | 265 bool get hasNode => _unsupported('hasNode'); |
| 275 | 266 |
| 276 @override | 267 @override |
| 277 bool get hasResolvedAst => _unsupported('hasResolvedAst'); | 268 bool get hasResolvedAst => _unsupported('hasResolvedAst'); |
| 278 | 269 |
| 279 @override | 270 @override |
| 280 get node => _unsupported('node'); | 271 get node => _unsupported('node'); |
| 281 | 272 |
| 282 @override | 273 @override |
| 283 ResolvedAst get resolvedAst => _unsupported('resolvedAst'); | 274 ResolvedAst get resolvedAst => _unsupported('resolvedAst'); |
| 284 } | 275 } |
| 285 | 276 |
| 286 abstract class ContainerMixin | 277 abstract class ContainerMixin |
| 287 implements DeserializedElementZ, ScopeContainerElement { | 278 implements DeserializedElementZ, ScopeContainerElement { |
| 288 MappedContainer _membersMap = new MappedContainer(); | 279 MappedContainer _membersMap = new MappedContainer(); |
| 289 | 280 |
| 290 @override | 281 @override |
| 291 Element localLookup(String name) { | 282 Element localLookup(String name) { |
| 292 return _membersMap.lookup( | 283 return _membersMap.lookup( |
| 293 name, _decoder.getMap(Key.MEMBERS, isOptional: true)); | 284 name, _decoder.getMap(Key.MEMBERS, isOptional: true)); |
| 294 } | 285 } |
| 295 | 286 |
| 296 @override | 287 @override |
| 297 void forEachLocalMember(f(Element element)) { | 288 void forEachLocalMember(f(Element element)) { |
| 298 MapDecoder members = | 289 MapDecoder members = _decoder.getMap(Key.MEMBERS, isOptional: true); |
| 299 _decoder.getMap(Key.MEMBERS, isOptional: true); | |
| 300 if (members == null) return; | 290 if (members == null) return; |
| 301 members.forEachKey((String key) { | 291 members.forEachKey((String key) { |
| 302 Element member = members.getElement(key); | 292 Element member = members.getElement(key); |
| 303 if (member != null) { | 293 if (member != null) { |
| 304 f(member); | 294 f(member); |
| 305 } | 295 } |
| 306 }); | 296 }); |
| 307 } | 297 } |
| 308 } | 298 } |
| 309 | 299 |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 345 Element get enclosingElement => _canonicalElement.enclosingElement; | 335 Element get enclosingElement => _canonicalElement.enclosingElement; |
| 346 | 336 |
| 347 @override | 337 @override |
| 348 SourceSpan get sourcePosition => _canonicalElement.sourcePosition; | 338 SourceSpan get sourcePosition => _canonicalElement.sourcePosition; |
| 349 | 339 |
| 350 @override | 340 @override |
| 351 ClassElement get enclosingClass => _canonicalElement.enclosingClass; | 341 ClassElement get enclosingClass => _canonicalElement.enclosingClass; |
| 352 } | 342 } |
| 353 | 343 |
| 354 class LibraryElementZ extends DeserializedElementZ | 344 class LibraryElementZ extends DeserializedElementZ |
| 355 with AnalyzableElementMixin, | 345 with AnalyzableElementMixin, ContainerMixin, LibraryElementCommon |
| 356 ContainerMixin, | |
| 357 LibraryElementCommon | |
| 358 implements LibraryElement { | 346 implements LibraryElement { |
| 359 Uri _canonicalUri; | 347 Uri _canonicalUri; |
| 360 CompilationUnitElement _entryCompilationUnit; | 348 CompilationUnitElement _entryCompilationUnit; |
| 361 Link<CompilationUnitElement> _compilationUnits; | 349 Link<CompilationUnitElement> _compilationUnits; |
| 362 List<ImportElement> _imports; | 350 List<ImportElement> _imports; |
| 363 List<ExportElement> _exports; | 351 List<ExportElement> _exports; |
| 364 ListedContainer _exportsMap; | 352 ListedContainer _exportsMap; |
| 365 ListedContainer _importsMap; | 353 ListedContainer _importsMap; |
| 366 | 354 |
| 367 LibraryElementZ(ObjectDecoder decoder) | 355 LibraryElementZ(ObjectDecoder decoder) : super(decoder); |
| 368 : super(decoder); | |
| 369 | 356 |
| 370 @override | 357 @override |
| 371 ElementKind get kind => ElementKind.LIBRARY; | 358 ElementKind get kind => ElementKind.LIBRARY; |
| 372 | 359 |
| 373 @override | 360 @override |
| 374 Element get enclosingElement => null; | 361 Element get enclosingElement => null; |
| 375 | 362 |
| 376 @override | 363 @override |
| 377 String get name => entryCompilationUnit.name; | 364 String get name => entryCompilationUnit.name; |
| 378 | 365 |
| (...skipping 20 matching lines...) Expand all Loading... |
| 399 CompilationUnitElement get entryCompilationUnit { | 386 CompilationUnitElement get entryCompilationUnit { |
| 400 if (_entryCompilationUnit == null) { | 387 if (_entryCompilationUnit == null) { |
| 401 _entryCompilationUnit = _decoder.getElement(Key.COMPILATION_UNIT); | 388 _entryCompilationUnit = _decoder.getElement(Key.COMPILATION_UNIT); |
| 402 } | 389 } |
| 403 return _entryCompilationUnit; | 390 return _entryCompilationUnit; |
| 404 } | 391 } |
| 405 | 392 |
| 406 @override | 393 @override |
| 407 Link<CompilationUnitElement> get compilationUnits { | 394 Link<CompilationUnitElement> get compilationUnits { |
| 408 if (_compilationUnits == null) { | 395 if (_compilationUnits == null) { |
| 409 _compilationUnits = | 396 _compilationUnits = toLink(_decoder.getElements(Key.COMPILATION_UNITS)); |
| 410 toLink(_decoder.getElements(Key.COMPILATION_UNITS)); | |
| 411 } | 397 } |
| 412 return _compilationUnits; | 398 return _compilationUnits; |
| 413 } | 399 } |
| 414 | 400 |
| 415 @override | 401 @override |
| 416 bool get hasLibraryName { | 402 bool get hasLibraryName { |
| 417 return libraryName != ''; | 403 return libraryName != ''; |
| 418 } | 404 } |
| 419 | 405 |
| 420 @override | 406 @override |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 515 // TODO(johnniwinther): Support the distinction between [readableUri] and | 501 // TODO(johnniwinther): Support the distinction between [readableUri] and |
| 516 // [resourceUri]; needed for platform libraries. | 502 // [resourceUri]; needed for platform libraries. |
| 517 @override | 503 @override |
| 518 Uri get readableUri => resourceUri; | 504 Uri get readableUri => resourceUri; |
| 519 | 505 |
| 520 @override | 506 @override |
| 521 String get text => throw new UnsupportedError('ScriptZ.text'); | 507 String get text => throw new UnsupportedError('ScriptZ.text'); |
| 522 } | 508 } |
| 523 | 509 |
| 524 class CompilationUnitElementZ extends DeserializedElementZ | 510 class CompilationUnitElementZ extends DeserializedElementZ |
| 525 with LibraryMemberMixin, | 511 with LibraryMemberMixin, CompilationUnitElementCommon |
| 526 CompilationUnitElementCommon | |
| 527 implements CompilationUnitElement { | 512 implements CompilationUnitElement { |
| 528 List<Element> _members; | 513 List<Element> _members; |
| 529 Script _script; | 514 Script _script; |
| 530 | 515 |
| 531 CompilationUnitElementZ(ObjectDecoder decoder) | 516 CompilationUnitElementZ(ObjectDecoder decoder) : super(decoder); |
| 532 : super(decoder); | |
| 533 | 517 |
| 534 @override | 518 @override |
| 535 ElementKind get kind => ElementKind.COMPILATION_UNIT; | 519 ElementKind get kind => ElementKind.COMPILATION_UNIT; |
| 536 | 520 |
| 537 @override | 521 @override |
| 538 CompilationUnitElement get compilationUnit => this; | 522 CompilationUnitElement get compilationUnit => this; |
| 539 | 523 |
| 540 @override | 524 @override |
| 541 Element get enclosingElement => library; | 525 Element get enclosingElement => library; |
| 542 | 526 |
| 543 @override | 527 @override |
| 544 accept(ElementVisitor visitor, arg) { | 528 accept(ElementVisitor visitor, arg) { |
| 545 return visitor.visitCompilationUnitElement(this, arg); | 529 return visitor.visitCompilationUnitElement(this, arg); |
| 546 } | 530 } |
| 547 | 531 |
| 548 @override | 532 @override |
| 549 void forEachLocalMember(f(Element element)) { | 533 void forEachLocalMember(f(Element element)) { |
| 550 if (_members == null) { | 534 if (_members == null) { |
| 551 _members = | 535 _members = _decoder.getElements(Key.ELEMENTS, isOptional: true); |
| 552 _decoder.getElements(Key.ELEMENTS, isOptional: true); | |
| 553 } | 536 } |
| 554 _members.forEach(f); | 537 _members.forEach(f); |
| 555 } | 538 } |
| 556 | 539 |
| 557 @override | 540 @override |
| 558 Script get script { | 541 Script get script { |
| 559 if (_script == null) { | 542 if (_script == null) { |
| 560 Uri resolvedUri = _decoder.getUri(Key.URI); | 543 Uri resolvedUri = _decoder.getUri(Key.URI); |
| 561 _script = new ScriptZ(resolvedUri); | 544 _script = new ScriptZ(resolvedUri); |
| 562 } | 545 } |
| 563 return _script; | 546 return _script; |
| 564 } | 547 } |
| 565 | 548 |
| 566 @override | 549 @override |
| 567 String get name => script.name; | 550 String get name => script.name; |
| 568 } | 551 } |
| 569 | 552 |
| 570 | |
| 571 abstract class LibraryMemberMixin implements DeserializedElementZ { | 553 abstract class LibraryMemberMixin implements DeserializedElementZ { |
| 572 LibraryElement _library; | 554 LibraryElement _library; |
| 573 CompilationUnitElement _compilationUnit; | 555 CompilationUnitElement _compilationUnit; |
| 574 | 556 |
| 575 @override | 557 @override |
| 576 LibraryElement get library { | 558 LibraryElement get library { |
| 577 if (_library == null) { | 559 if (_library == null) { |
| 578 _library = _decoder.getElement(Key.LIBRARY); | 560 _library = _decoder.getElement(Key.LIBRARY); |
| 579 } | 561 } |
| 580 return _library; | 562 return _library; |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 637 } | 619 } |
| 638 | 620 |
| 639 abstract class StaticMemberMixin implements DeserializedElementZ { | 621 abstract class StaticMemberMixin implements DeserializedElementZ { |
| 640 @override | 622 @override |
| 641 bool get isTopLevel => false; | 623 bool get isTopLevel => false; |
| 642 | 624 |
| 643 @override | 625 @override |
| 644 bool get isStatic => true; | 626 bool get isStatic => true; |
| 645 } | 627 } |
| 646 | 628 |
| 647 abstract class TypedElementMixin | 629 abstract class TypedElementMixin implements DeserializedElementZ, TypedElement { |
| 648 implements DeserializedElementZ, TypedElement { | |
| 649 DartType _type; | 630 DartType _type; |
| 650 | 631 |
| 651 @override | 632 @override |
| 652 DartType get type { | 633 DartType get type { |
| 653 if (_type == null) { | 634 if (_type == null) { |
| 654 _type = _decoder.getType(Key.TYPE); | 635 _type = _decoder.getType(Key.TYPE); |
| 655 } | 636 } |
| 656 return _type; | 637 return _type; |
| 657 } | 638 } |
| 658 | 639 |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 693 optionalParameterTypes.add(parameter.type); | 674 optionalParameterTypes.add(parameter.type); |
| 694 } | 675 } |
| 695 } else { | 676 } else { |
| 696 requiredParameterCount++; | 677 requiredParameterCount++; |
| 697 optionalParameters.add(parameter); | 678 optionalParameters.add(parameter); |
| 698 parameterTypes.add(parameter.type); | 679 parameterTypes.add(parameter.type); |
| 699 } | 680 } |
| 700 } | 681 } |
| 701 if (optionalParametersAreNamed) { | 682 if (optionalParametersAreNamed) { |
| 702 orderedOptionalParameters.sort((Element a, Element b) { | 683 orderedOptionalParameters.sort((Element a, Element b) { |
| 703 return a.name.compareTo(b.name); | 684 return a.name.compareTo(b.name); |
| 704 }); | 685 }); |
| 705 } | 686 } |
| 706 | 687 |
| 707 FunctionType type = new FunctionType( | 688 FunctionType type = new FunctionType( |
| 708 this, | 689 this, |
| 709 _decoder.getType(Key.RETURN_TYPE), | 690 _decoder.getType(Key.RETURN_TYPE), |
| 710 parameterTypes, | 691 parameterTypes, |
| 711 optionalParameterTypes, | 692 optionalParameterTypes, |
| 712 namedParameters, | 693 namedParameters, |
| 713 namedParameterTypes); | 694 namedParameterTypes); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 734 abstract class FunctionTypedElementMixin | 715 abstract class FunctionTypedElementMixin |
| 735 implements FunctionElement, DeserializedElementZ { | 716 implements FunctionElement, DeserializedElementZ { |
| 736 @override | 717 @override |
| 737 AsyncMarker get asyncMarker => _unsupported('asyncMarker'); | 718 AsyncMarker get asyncMarker => _unsupported('asyncMarker'); |
| 738 | 719 |
| 739 @override | 720 @override |
| 740 FunctionElement asFunctionElement() => this; | 721 FunctionElement asFunctionElement() => this; |
| 741 | 722 |
| 742 @override | 723 @override |
| 743 bool get isExternal { | 724 bool get isExternal { |
| 744 return _decoder.getBool( | 725 return _decoder.getBool(Key.IS_EXTERNAL, |
| 745 Key.IS_EXTERNAL, isOptional: true, defaultValue: false); | 726 isOptional: true, defaultValue: false); |
| 746 } | 727 } |
| 747 } | 728 } |
| 748 | 729 |
| 749 abstract class ClassElementMixin implements ElementZ, ClassElement { | 730 abstract class ClassElementMixin implements ElementZ, ClassElement { |
| 750 InterfaceType _createType(List<DartType> typeArguments) { | 731 InterfaceType _createType(List<DartType> typeArguments) { |
| 751 return new InterfaceType(this, typeArguments); | 732 return new InterfaceType(this, typeArguments); |
| 752 } | 733 } |
| 753 | 734 |
| 754 @override | 735 @override |
| 755 ElementKind get kind => ElementKind.CLASS; | 736 ElementKind get kind => ElementKind.CLASS; |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 797 @override | 778 @override |
| 798 void reverseBackendMembers() => _unsupported('reverseBackendMembers'); | 779 void reverseBackendMembers() => _unsupported('reverseBackendMembers'); |
| 799 | 780 |
| 800 @override | 781 @override |
| 801 ClassElement get superclass => supertype != null ? supertype.element : null; | 782 ClassElement get superclass => supertype != null ? supertype.element : null; |
| 802 | 783 |
| 803 @override | 784 @override |
| 804 void ensureResolved(Resolution resolution) { | 785 void ensureResolved(Resolution resolution) { |
| 805 resolution.registerClass(this); | 786 resolution.registerClass(this); |
| 806 } | 787 } |
| 807 | |
| 808 } | 788 } |
| 809 | 789 |
| 810 class ClassElementZ extends DeserializedElementZ | 790 class ClassElementZ extends DeserializedElementZ |
| 811 with AnalyzableElementMixin, | 791 with |
| 812 AstElementMixin, | 792 AnalyzableElementMixin, |
| 813 ClassElementCommon, | 793 AstElementMixin, |
| 814 class_members.ClassMemberMixin, | 794 ClassElementCommon, |
| 815 ContainerMixin, | 795 class_members.ClassMemberMixin, |
| 816 LibraryMemberMixin, | 796 ContainerMixin, |
| 817 TypeDeclarationMixin<InterfaceType>, | 797 LibraryMemberMixin, |
| 818 ClassElementMixin | 798 TypeDeclarationMixin<InterfaceType>, |
| 799 ClassElementMixin |
| 819 implements ClassElement { | 800 implements ClassElement { |
| 820 bool _isObject; | 801 bool _isObject; |
| 821 DartType _supertype; | 802 DartType _supertype; |
| 822 OrderedTypeSet _allSupertypesAndSelf; | 803 OrderedTypeSet _allSupertypesAndSelf; |
| 823 Link<DartType> _interfaces; | 804 Link<DartType> _interfaces; |
| 824 FunctionType _callType; | 805 FunctionType _callType; |
| 825 | 806 |
| 826 ClassElementZ(ObjectDecoder decoder) | 807 ClassElementZ(ObjectDecoder decoder) : super(decoder); |
| 827 : super(decoder); | |
| 828 | 808 |
| 829 @override | 809 @override |
| 830 List<DartType> _getTypeVariables() { | 810 List<DartType> _getTypeVariables() { |
| 831 return _decoder.getTypes(Key.TYPE_VARIABLES, isOptional: true); | 811 return _decoder.getTypes(Key.TYPE_VARIABLES, isOptional: true); |
| 832 } | 812 } |
| 833 | 813 |
| 834 void _ensureSuperHierarchy() { | 814 void _ensureSuperHierarchy() { |
| 835 if (_interfaces == null) { | 815 if (_interfaces == null) { |
| 836 InterfaceType supertype = | 816 InterfaceType supertype = |
| 837 _decoder.getType(Key.SUPERTYPE, isOptional: true); | 817 _decoder.getType(Key.SUPERTYPE, isOptional: true); |
| 838 if (supertype == null) { | 818 if (supertype == null) { |
| 839 _isObject = true; | 819 _isObject = true; |
| 840 _allSupertypesAndSelf = new OrderedTypeSet.singleton(thisType); | 820 _allSupertypesAndSelf = new OrderedTypeSet.singleton(thisType); |
| 841 _interfaces = const Link<DartType>(); | 821 _interfaces = const Link<DartType>(); |
| 842 } else { | 822 } else { |
| 843 _isObject = false; | 823 _isObject = false; |
| 844 _interfaces = toLink( | 824 _interfaces = |
| 845 _decoder.getTypes(Key.INTERFACES, isOptional: true)); | 825 toLink(_decoder.getTypes(Key.INTERFACES, isOptional: true)); |
| 846 List<InterfaceType> mixins = | 826 List<InterfaceType> mixins = |
| 847 _decoder.getTypes(Key.MIXINS, isOptional: true); | 827 _decoder.getTypes(Key.MIXINS, isOptional: true); |
| 848 for (InterfaceType mixin in mixins) { | 828 for (InterfaceType mixin in mixins) { |
| 849 MixinApplicationElement mixinElement = | 829 MixinApplicationElement mixinElement = |
| 850 new UnnamedMixinApplicationElementZ(this, supertype, mixin); | 830 new UnnamedMixinApplicationElementZ(this, supertype, mixin); |
| 851 supertype = mixinElement.thisType.subst( | 831 supertype = mixinElement.thisType |
| 852 typeVariables, mixinElement.typeVariables); | 832 .subst(typeVariables, mixinElement.typeVariables); |
| 853 } | 833 } |
| 854 _supertype = supertype; | 834 _supertype = supertype; |
| 855 _allSupertypesAndSelf = | 835 _allSupertypesAndSelf = new OrderedTypeSetBuilder(this) |
| 856 new OrderedTypeSetBuilder(this) | 836 .createOrderedTypeSet(_supertype, _interfaces); |
| 857 .createOrderedTypeSet(_supertype, _interfaces); | |
| 858 _callType = _decoder.getType(Key.CALL_TYPE, isOptional: true); | 837 _callType = _decoder.getType(Key.CALL_TYPE, isOptional: true); |
| 859 } | 838 } |
| 860 } | 839 } |
| 861 } | 840 } |
| 862 | 841 |
| 863 @override | 842 @override |
| 864 accept(ElementVisitor visitor, arg) { | 843 accept(ElementVisitor visitor, arg) { |
| 865 return visitor.visitClassElement(this, arg); | 844 return visitor.visitClassElement(this, arg); |
| 866 } | 845 } |
| 867 | 846 |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 925 builder.addLast( | 904 builder.addLast( |
| 926 new ForwardingConstructorElementZ(this, definingConstructor)); | 905 new ForwardingConstructorElementZ(this, definingConstructor)); |
| 927 } | 906 } |
| 928 } | 907 } |
| 929 _constructors = builder.toLink(); | 908 _constructors = builder.toLink(); |
| 930 } | 909 } |
| 931 return _constructors; | 910 return _constructors; |
| 932 } | 911 } |
| 933 } | 912 } |
| 934 | 913 |
| 935 | |
| 936 class NamedMixinApplicationElementZ extends ClassElementZ | 914 class NamedMixinApplicationElementZ extends ClassElementZ |
| 937 with MixinApplicationElementCommon, | 915 with MixinApplicationElementCommon, MixinApplicationElementMixin { |
| 938 MixinApplicationElementMixin { | |
| 939 InterfaceType _mixinType; | 916 InterfaceType _mixinType; |
| 940 | 917 |
| 941 NamedMixinApplicationElementZ(ObjectDecoder decoder) | 918 NamedMixinApplicationElementZ(ObjectDecoder decoder) : super(decoder); |
| 942 : super(decoder); | |
| 943 | 919 |
| 944 @override | 920 @override |
| 945 InterfaceType get mixinType =>_mixinType ??= _decoder.getType(Key.MIXIN); | 921 InterfaceType get mixinType => _mixinType ??= _decoder.getType(Key.MIXIN); |
| 946 } | 922 } |
| 947 | 923 |
| 948 | |
| 949 class UnnamedMixinApplicationElementZ extends ElementZ | 924 class UnnamedMixinApplicationElementZ extends ElementZ |
| 950 with ClassElementCommon, | 925 with |
| 951 ClassElementMixin, | 926 ClassElementCommon, |
| 952 class_members.ClassMemberMixin, | 927 ClassElementMixin, |
| 953 TypeDeclarationMixin<InterfaceType>, | 928 class_members.ClassMemberMixin, |
| 954 AnalyzableElementMixin, | 929 TypeDeclarationMixin<InterfaceType>, |
| 955 AstElementMixin, | 930 AnalyzableElementMixin, |
| 956 MixinApplicationElementCommon, | 931 AstElementMixin, |
| 957 MixinApplicationElementMixin { | 932 MixinApplicationElementCommon, |
| 933 MixinApplicationElementMixin { |
| 958 final String name; | 934 final String name; |
| 959 final ClassElement _subclass; | 935 final ClassElement _subclass; |
| 960 final InterfaceType supertype; | 936 final InterfaceType supertype; |
| 961 final Link<DartType> interfaces; | 937 final Link<DartType> interfaces; |
| 962 OrderedTypeSet _allSupertypesAndSelf; | 938 OrderedTypeSet _allSupertypesAndSelf; |
| 963 | 939 |
| 964 UnnamedMixinApplicationElementZ( | 940 UnnamedMixinApplicationElementZ( |
| 965 ClassElement subclass, | 941 ClassElement subclass, InterfaceType supertype, InterfaceType mixin) |
| 966 InterfaceType supertype, InterfaceType mixin) | |
| 967 : this._subclass = subclass, | 942 : this._subclass = subclass, |
| 968 this.supertype = supertype, | 943 this.supertype = supertype, |
| 969 this.interfaces = const Link<DartType>().prepend(mixin), | 944 this.interfaces = const Link<DartType>().prepend(mixin), |
| 970 this.name = "${supertype.name}+${mixin.name}"; | 945 this.name = "${supertype.name}+${mixin.name}"; |
| 971 | 946 |
| 972 @override | 947 @override |
| 973 CompilationUnitElement get compilationUnit => _subclass.compilationUnit; | 948 CompilationUnitElement get compilationUnit => _subclass.compilationUnit; |
| 974 | 949 |
| 975 @override | 950 @override |
| 976 bool get isUnnamedMixinApplication => true; | 951 bool get isUnnamedMixinApplication => true; |
| (...skipping 22 matching lines...) Expand all Loading... |
| 999 } | 974 } |
| 1000 | 975 |
| 1001 @override | 976 @override |
| 1002 accept(ElementVisitor visitor, arg) { | 977 accept(ElementVisitor visitor, arg) { |
| 1003 return visitor.visitMixinApplicationElement(this, arg); | 978 return visitor.visitMixinApplicationElement(this, arg); |
| 1004 } | 979 } |
| 1005 | 980 |
| 1006 @override | 981 @override |
| 1007 OrderedTypeSet get allSupertypesAndSelf { | 982 OrderedTypeSet get allSupertypesAndSelf { |
| 1008 if (_allSupertypesAndSelf == null) { | 983 if (_allSupertypesAndSelf == null) { |
| 1009 _allSupertypesAndSelf = | 984 _allSupertypesAndSelf = new OrderedTypeSetBuilder(this) |
| 1010 new OrderedTypeSetBuilder(this) | 985 .createOrderedTypeSet(supertype, interfaces); |
| 1011 .createOrderedTypeSet(supertype, interfaces); | |
| 1012 } | 986 } |
| 1013 return _allSupertypesAndSelf; | 987 return _allSupertypesAndSelf; |
| 1014 } | 988 } |
| 1015 | 989 |
| 1016 @override | 990 @override |
| 1017 Element get enclosingElement => _subclass.enclosingElement; | 991 Element get enclosingElement => _subclass.enclosingElement; |
| 1018 | 992 |
| 1019 @override | 993 @override |
| 1020 bool get isObject => false; | 994 bool get isObject => false; |
| 1021 | 995 |
| 1022 @override | 996 @override |
| 1023 bool get isProxy => false; | 997 bool get isProxy => false; |
| 1024 | 998 |
| 1025 @override | 999 @override |
| 1026 LibraryElement get library => enclosingElement.library; | 1000 LibraryElement get library => enclosingElement.library; |
| 1027 | 1001 |
| 1028 @override | 1002 @override |
| 1029 InterfaceType get mixinType => interfaces.head; | 1003 InterfaceType get mixinType => interfaces.head; |
| 1030 | 1004 |
| 1031 @override | 1005 @override |
| 1032 SourceSpan get sourcePosition => _subclass.sourcePosition; | 1006 SourceSpan get sourcePosition => _subclass.sourcePosition; |
| 1033 } | 1007 } |
| 1034 | 1008 |
| 1035 | |
| 1036 class EnumClassElementZ extends ClassElementZ implements EnumClassElement { | 1009 class EnumClassElementZ extends ClassElementZ implements EnumClassElement { |
| 1037 List<FieldElement> _enumValues; | 1010 List<FieldElement> _enumValues; |
| 1038 | 1011 |
| 1039 EnumClassElementZ(ObjectDecoder decoder) | 1012 EnumClassElementZ(ObjectDecoder decoder) : super(decoder); |
| 1040 : super(decoder); | |
| 1041 | 1013 |
| 1042 @override | 1014 @override |
| 1043 bool get isEnumClass => true; | 1015 bool get isEnumClass => true; |
| 1044 | 1016 |
| 1045 @override | 1017 @override |
| 1046 List<FieldElement> get enumValues { | 1018 List<FieldElement> get enumValues { |
| 1047 if (_enumValues == null) { | 1019 if (_enumValues == null) { |
| 1048 _enumValues = _decoder.getElements(Key.FIELDS); | 1020 _enumValues = _decoder.getElements(Key.FIELDS); |
| 1049 } | 1021 } |
| 1050 return _enumValues; | 1022 return _enumValues; |
| 1051 } | 1023 } |
| 1052 } | 1024 } |
| 1053 | 1025 |
| 1054 abstract class ConstructorElementZ extends DeserializedElementZ | 1026 abstract class ConstructorElementZ extends DeserializedElementZ |
| 1055 with AnalyzableElementMixin, | 1027 with |
| 1056 AstElementMixin, | 1028 AnalyzableElementMixin, |
| 1057 ClassMemberMixin, | 1029 AstElementMixin, |
| 1058 FunctionTypedElementMixin, | 1030 ClassMemberMixin, |
| 1059 ParametersMixin, | 1031 FunctionTypedElementMixin, |
| 1060 TypedElementMixin, | 1032 ParametersMixin, |
| 1061 MemberElementMixin | 1033 TypedElementMixin, |
| 1034 MemberElementMixin |
| 1062 implements ConstructorElement { | 1035 implements ConstructorElement { |
| 1063 ConstantConstructor _constantConstructor; | 1036 ConstantConstructor _constantConstructor; |
| 1064 | 1037 |
| 1065 ConstructorElementZ(ObjectDecoder decoder) | 1038 ConstructorElementZ(ObjectDecoder decoder) : super(decoder); |
| 1066 : super(decoder); | |
| 1067 | 1039 |
| 1068 accept(ElementVisitor visitor, arg) { | 1040 accept(ElementVisitor visitor, arg) { |
| 1069 return visitor.visitConstructorElement(this, arg); | 1041 return visitor.visitConstructorElement(this, arg); |
| 1070 } | 1042 } |
| 1071 | 1043 |
| 1072 @override | 1044 @override |
| 1073 bool get isConst => _decoder.getBool(Key.IS_CONST); | 1045 bool get isConst => _decoder.getBool(Key.IS_CONST); |
| 1074 | 1046 |
| 1075 @override | 1047 @override |
| 1076 bool get isExternal => _decoder.getBool(Key.IS_EXTERNAL); | 1048 bool get isExternal => _decoder.getBool(Key.IS_EXTERNAL); |
| 1077 | 1049 |
| 1078 bool get isFromEnvironmentConstructor { | 1050 bool get isFromEnvironmentConstructor { |
| 1079 return name == 'fromEnvironment' && | 1051 return name == 'fromEnvironment' && |
| 1080 library.isDartCore && | 1052 library.isDartCore && |
| 1081 (enclosingClass.name == 'bool' || | 1053 (enclosingClass.name == 'bool' || |
| 1082 enclosingClass.name == 'int' || | 1054 enclosingClass.name == 'int' || |
| 1083 enclosingClass.name == 'String'); | 1055 enclosingClass.name == 'String'); |
| 1084 } | 1056 } |
| 1085 | 1057 |
| 1086 ConstantConstructor get constantConstructor { | 1058 ConstantConstructor get constantConstructor { |
| 1087 if (isConst && _constantConstructor == null) { | 1059 if (isConst && _constantConstructor == null) { |
| 1088 ObjectDecoder data = | 1060 ObjectDecoder data = |
| 1089 _decoder.getObject(Key.CONSTRUCTOR, isOptional: true); | 1061 _decoder.getObject(Key.CONSTRUCTOR, isOptional: true); |
| 1090 if (data == null) { | 1062 if (data == null) { |
| 1091 assert(isFromEnvironmentConstructor || isExternal); | 1063 assert(isFromEnvironmentConstructor || isExternal); |
| 1092 return null; | 1064 return null; |
| 1093 } | 1065 } |
| 1094 _constantConstructor = ConstantConstructorDeserializer.deserialize(data); | 1066 _constantConstructor = ConstantConstructorDeserializer.deserialize(data); |
| 1095 } | 1067 } |
| 1096 return _constantConstructor; | 1068 return _constantConstructor; |
| 1097 } | 1069 } |
| 1098 | 1070 |
| 1099 @override | 1071 @override |
| 1100 AsyncMarker get asyncMarker => _unsupported('asyncMarker'); | 1072 AsyncMarker get asyncMarker => _unsupported('asyncMarker'); |
| 1101 | 1073 |
| 1102 @override | 1074 @override |
| 1103 InterfaceType computeEffectiveTargetType(InterfaceType newType) { | 1075 InterfaceType computeEffectiveTargetType(InterfaceType newType) { |
| 1104 return _unsupported('computeEffectiveTargetType'); | 1076 return _unsupported('computeEffectiveTargetType'); |
| 1105 } | 1077 } |
| 1106 | 1078 |
| 1107 @override | 1079 @override |
| 1108 ConstructorElement get definingConstructor { | 1080 ConstructorElement get definingConstructor { |
| 1109 return _unsupported('definingConstructor'); | 1081 return _unsupported('definingConstructor'); |
| 1110 } | 1082 } |
| 1111 | 1083 |
| 1112 @override | 1084 @override |
| 1113 ConstructorElement get effectiveTarget { | 1085 ConstructorElement get effectiveTarget { |
| 1114 return _unsupported('effectiveTarget'); | 1086 return _unsupported('effectiveTarget'); |
| 1115 } | 1087 } |
| 1116 | 1088 |
| 1117 @override | 1089 @override |
| 1118 ConstructorElement get immediateRedirectionTarget { | 1090 ConstructorElement get immediateRedirectionTarget { |
| 1119 return _unsupported('immediateRedirectionTarget'); | 1091 return _unsupported('immediateRedirectionTarget'); |
| 1120 } | 1092 } |
| 1121 | 1093 |
| 1122 @override | 1094 @override |
| 1123 bool get isEffectiveTargetMalformed { | 1095 bool get isEffectiveTargetMalformed { |
| 1124 return _unsupported('isEffectiveTargetMalformed'); | 1096 return _unsupported('isEffectiveTargetMalformed'); |
| 1125 } | 1097 } |
| 1126 | 1098 |
| 1127 @override | 1099 @override |
| 1128 bool get isRedirectingFactory => _unsupported('isRedirectingFactory'); | 1100 bool get isRedirectingFactory => _unsupported('isRedirectingFactory'); |
| 1129 | 1101 |
| 1130 @override | 1102 @override |
| 1131 bool get isRedirectingGenerative => _unsupported('isRedirectingGenerative'); | 1103 bool get isRedirectingGenerative => _unsupported('isRedirectingGenerative'); |
| 1132 | 1104 |
| 1133 @override | 1105 @override |
| 1134 bool get isCyclicRedirection => _unsupported('isCyclicRedirection'); | 1106 bool get isCyclicRedirection => _unsupported('isCyclicRedirection'); |
| 1135 | 1107 |
| 1136 @override | 1108 @override |
| 1137 PrefixElement get redirectionDeferredPrefix { | 1109 PrefixElement get redirectionDeferredPrefix { |
| 1138 return _unsupported('redirectionDeferredPrefix'); | 1110 return _unsupported('redirectionDeferredPrefix'); |
| 1139 } | 1111 } |
| 1140 } | 1112 } |
| 1141 | 1113 |
| 1142 class GenerativeConstructorElementZ extends ConstructorElementZ { | 1114 class GenerativeConstructorElementZ extends ConstructorElementZ { |
| 1143 GenerativeConstructorElementZ(ObjectDecoder decoder) | 1115 GenerativeConstructorElementZ(ObjectDecoder decoder) : super(decoder); |
| 1144 : super(decoder); | |
| 1145 | 1116 |
| 1146 @override | 1117 @override |
| 1147 ElementKind get kind => ElementKind.GENERATIVE_CONSTRUCTOR; | 1118 ElementKind get kind => ElementKind.GENERATIVE_CONSTRUCTOR; |
| 1148 | 1119 |
| 1149 @override | 1120 @override |
| 1150 bool get isEffectiveTargetMalformed => | 1121 bool get isEffectiveTargetMalformed => |
| 1151 _unsupported('isEffectiveTargetMalformed'); | 1122 _unsupported('isEffectiveTargetMalformed'); |
| 1152 } | 1123 } |
| 1153 | 1124 |
| 1154 class FactoryConstructorElementZ extends ConstructorElementZ { | 1125 class FactoryConstructorElementZ extends ConstructorElementZ { |
| 1155 | 1126 FactoryConstructorElementZ(ObjectDecoder decoder) : super(decoder); |
| 1156 FactoryConstructorElementZ(ObjectDecoder decoder) | |
| 1157 : super(decoder); | |
| 1158 | 1127 |
| 1159 @override | 1128 @override |
| 1160 ElementKind get kind => ElementKind.FACTORY_CONSTRUCTOR; | 1129 ElementKind get kind => ElementKind.FACTORY_CONSTRUCTOR; |
| 1161 | 1130 |
| 1162 @override | 1131 @override |
| 1163 bool get isEffectiveTargetMalformed => | 1132 bool get isEffectiveTargetMalformed => |
| 1164 _unsupported('isEffectiveTargetMalformed'); | 1133 _unsupported('isEffectiveTargetMalformed'); |
| 1165 } | 1134 } |
| 1166 | 1135 |
| 1167 class ForwardingConstructorElementZ extends ElementZ | 1136 class ForwardingConstructorElementZ extends ElementZ |
| 1168 with AnalyzableElementMixin, | 1137 with AnalyzableElementMixin, AstElementMixin |
| 1169 AstElementMixin | |
| 1170 implements ConstructorElement { | 1138 implements ConstructorElement { |
| 1171 final MixinApplicationElement enclosingClass; | 1139 final MixinApplicationElement enclosingClass; |
| 1172 final ConstructorElement definingConstructor; | 1140 final ConstructorElement definingConstructor; |
| 1173 | 1141 |
| 1174 ForwardingConstructorElementZ(this.enclosingClass, this.definingConstructor); | 1142 ForwardingConstructorElementZ(this.enclosingClass, this.definingConstructor); |
| 1175 | 1143 |
| 1176 @override | 1144 @override |
| 1177 CompilationUnitElement get compilationUnit => enclosingClass.compilationUnit; | 1145 CompilationUnitElement get compilationUnit => enclosingClass.compilationUnit; |
| 1178 | 1146 |
| 1179 @override | 1147 @override |
| (...skipping 23 matching lines...) Expand all Loading... |
| 1203 | 1171 |
| 1204 @override | 1172 @override |
| 1205 Element get enclosingElement => enclosingClass; | 1173 Element get enclosingElement => enclosingClass; |
| 1206 | 1174 |
| 1207 @override | 1175 @override |
| 1208 FunctionSignature get functionSignature { | 1176 FunctionSignature get functionSignature { |
| 1209 return _unsupported('functionSignature'); | 1177 return _unsupported('functionSignature'); |
| 1210 } | 1178 } |
| 1211 | 1179 |
| 1212 @override | 1180 @override |
| 1213 bool get hasFunctionSignature { | 1181 bool get hasFunctionSignature { |
| 1214 return _unsupported('hasFunctionSignature'); | 1182 return _unsupported('hasFunctionSignature'); |
| 1215 } | 1183 } |
| 1216 | 1184 |
| 1217 @override | 1185 @override |
| 1218 ConstructorElement get immediateRedirectionTarget => null; | 1186 ConstructorElement get immediateRedirectionTarget => null; |
| 1219 | 1187 |
| 1220 @override | 1188 @override |
| 1221 bool get isCyclicRedirection => false; | 1189 bool get isCyclicRedirection => false; |
| 1222 | 1190 |
| 1223 @override | 1191 @override |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1270 @override | 1238 @override |
| 1271 FunctionType get type { | 1239 FunctionType get type { |
| 1272 // TODO(johnniwinther): Ensure that the function type substitutes type | 1240 // TODO(johnniwinther): Ensure that the function type substitutes type |
| 1273 // variables correctly. | 1241 // variables correctly. |
| 1274 return definingConstructor.type; | 1242 return definingConstructor.type; |
| 1275 } | 1243 } |
| 1276 } | 1244 } |
| 1277 | 1245 |
| 1278 abstract class MemberElementMixin | 1246 abstract class MemberElementMixin |
| 1279 implements DeserializedElementZ, MemberElement { | 1247 implements DeserializedElementZ, MemberElement { |
| 1280 | |
| 1281 @override | 1248 @override |
| 1282 MemberElement get memberContext => this; | 1249 MemberElement get memberContext => this; |
| 1283 | 1250 |
| 1284 @override | 1251 @override |
| 1285 Name get memberName => new Name(name, library); | 1252 Name get memberName => new Name(name, library); |
| 1286 | 1253 |
| 1287 @override | 1254 @override |
| 1288 List<FunctionElement> get nestedClosures => const <FunctionElement>[]; | 1255 List<FunctionElement> get nestedClosures => const <FunctionElement>[]; |
| 1289 | |
| 1290 } | 1256 } |
| 1291 | 1257 |
| 1292 abstract class FieldElementZ extends DeserializedElementZ | 1258 abstract class FieldElementZ extends DeserializedElementZ |
| 1293 with AnalyzableElementMixin, | 1259 with |
| 1294 AstElementMixin, | 1260 AnalyzableElementMixin, |
| 1295 TypedElementMixin, | 1261 AstElementMixin, |
| 1296 MemberElementMixin | 1262 TypedElementMixin, |
| 1263 MemberElementMixin |
| 1297 implements FieldElement { | 1264 implements FieldElement { |
| 1298 ConstantExpression _constant; | 1265 ConstantExpression _constant; |
| 1299 | 1266 |
| 1300 FieldElementZ(ObjectDecoder decoder) | 1267 FieldElementZ(ObjectDecoder decoder) : super(decoder); |
| 1301 : super(decoder); | |
| 1302 | 1268 |
| 1303 @override | 1269 @override |
| 1304 ElementKind get kind => ElementKind.FIELD; | 1270 ElementKind get kind => ElementKind.FIELD; |
| 1305 | 1271 |
| 1306 @override | 1272 @override |
| 1307 accept(ElementVisitor visitor, arg) { | 1273 accept(ElementVisitor visitor, arg) { |
| 1308 return visitor.visitFieldElement(this, arg); | 1274 return visitor.visitFieldElement(this, arg); |
| 1309 } | 1275 } |
| 1310 | 1276 |
| 1311 @override | 1277 @override |
| 1312 bool get isFinal => _decoder.getBool(Key.IS_FINAL); | 1278 bool get isFinal => _decoder.getBool(Key.IS_FINAL); |
| 1313 | 1279 |
| 1314 @override | 1280 @override |
| 1315 bool get isConst => _decoder.getBool(Key.IS_CONST); | 1281 bool get isConst => _decoder.getBool(Key.IS_CONST); |
| 1316 | 1282 |
| 1317 @override | 1283 @override |
| 1318 ConstantExpression get constant { | 1284 ConstantExpression get constant { |
| 1319 if (isConst && _constant == null) { | 1285 if (isConst && _constant == null) { |
| 1320 _constant = _decoder.getConstant(Key.CONSTANT); | 1286 _constant = _decoder.getConstant(Key.CONSTANT); |
| 1321 } | 1287 } |
| 1322 return _constant; | 1288 return _constant; |
| 1323 } | 1289 } |
| 1324 | 1290 |
| 1325 @override | 1291 @override |
| 1326 Expression get initializer => _unsupported('initializer'); | 1292 Expression get initializer => _unsupported('initializer'); |
| 1327 } | 1293 } |
| 1328 | 1294 |
| 1329 | |
| 1330 class TopLevelFieldElementZ extends FieldElementZ with LibraryMemberMixin { | 1295 class TopLevelFieldElementZ extends FieldElementZ with LibraryMemberMixin { |
| 1331 TopLevelFieldElementZ(ObjectDecoder decoder) | 1296 TopLevelFieldElementZ(ObjectDecoder decoder) : super(decoder); |
| 1332 : super(decoder); | |
| 1333 } | 1297 } |
| 1334 | 1298 |
| 1335 class StaticFieldElementZ extends FieldElementZ | 1299 class StaticFieldElementZ extends FieldElementZ |
| 1336 with ClassMemberMixin, StaticMemberMixin { | 1300 with ClassMemberMixin, StaticMemberMixin { |
| 1337 StaticFieldElementZ(ObjectDecoder decoder) | 1301 StaticFieldElementZ(ObjectDecoder decoder) : super(decoder); |
| 1338 : super(decoder); | |
| 1339 } | 1302 } |
| 1340 | 1303 |
| 1341 class InstanceFieldElementZ extends FieldElementZ | 1304 class InstanceFieldElementZ extends FieldElementZ |
| 1342 with ClassMemberMixin, InstanceMemberMixin { | 1305 with ClassMemberMixin, InstanceMemberMixin { |
| 1343 InstanceFieldElementZ(ObjectDecoder decoder) | 1306 InstanceFieldElementZ(ObjectDecoder decoder) : super(decoder); |
| 1344 : super(decoder); | |
| 1345 } | 1307 } |
| 1346 | 1308 |
| 1347 abstract class FunctionElementZ extends DeserializedElementZ | 1309 abstract class FunctionElementZ extends DeserializedElementZ |
| 1348 with AnalyzableElementMixin, | 1310 with |
| 1349 AstElementMixin, | 1311 AnalyzableElementMixin, |
| 1350 ParametersMixin, | 1312 AstElementMixin, |
| 1351 FunctionTypedElementMixin, | 1313 ParametersMixin, |
| 1352 TypedElementMixin, | 1314 FunctionTypedElementMixin, |
| 1353 MemberElementMixin | 1315 TypedElementMixin, |
| 1316 MemberElementMixin |
| 1354 implements MethodElement { | 1317 implements MethodElement { |
| 1355 FunctionElementZ(ObjectDecoder decoder) | 1318 FunctionElementZ(ObjectDecoder decoder) : super(decoder); |
| 1356 : super(decoder); | |
| 1357 | 1319 |
| 1358 @override | 1320 @override |
| 1359 ElementKind get kind => ElementKind.FUNCTION; | 1321 ElementKind get kind => ElementKind.FUNCTION; |
| 1360 | 1322 |
| 1361 @override | 1323 @override |
| 1362 accept(ElementVisitor visitor, arg) { | 1324 accept(ElementVisitor visitor, arg) { |
| 1363 return visitor.visitMethodElement(this, arg); | 1325 return visitor.visitMethodElement(this, arg); |
| 1364 } | 1326 } |
| 1365 | 1327 |
| 1366 @override | 1328 @override |
| 1367 bool get isOperator => _decoder.getBool(Key.IS_OPERATOR); | 1329 bool get isOperator => _decoder.getBool(Key.IS_OPERATOR); |
| 1368 } | 1330 } |
| 1369 | 1331 |
| 1370 class TopLevelFunctionElementZ extends FunctionElementZ | 1332 class TopLevelFunctionElementZ extends FunctionElementZ |
| 1371 with LibraryMemberMixin { | 1333 with LibraryMemberMixin { |
| 1372 TopLevelFunctionElementZ(ObjectDecoder decoder) | 1334 TopLevelFunctionElementZ(ObjectDecoder decoder) : super(decoder); |
| 1373 : super(decoder); | |
| 1374 } | 1335 } |
| 1375 | 1336 |
| 1376 class StaticFunctionElementZ extends FunctionElementZ | 1337 class StaticFunctionElementZ extends FunctionElementZ |
| 1377 with ClassMemberMixin, StaticMemberMixin { | 1338 with ClassMemberMixin, StaticMemberMixin { |
| 1378 StaticFunctionElementZ(ObjectDecoder decoder) | 1339 StaticFunctionElementZ(ObjectDecoder decoder) : super(decoder); |
| 1379 : super(decoder); | |
| 1380 } | 1340 } |
| 1381 | 1341 |
| 1382 class InstanceFunctionElementZ extends FunctionElementZ | 1342 class InstanceFunctionElementZ extends FunctionElementZ |
| 1383 with ClassMemberMixin, InstanceMemberMixin { | 1343 with ClassMemberMixin, InstanceMemberMixin { |
| 1384 InstanceFunctionElementZ(ObjectDecoder decoder) | 1344 InstanceFunctionElementZ(ObjectDecoder decoder) : super(decoder); |
| 1385 : super(decoder); | |
| 1386 } | 1345 } |
| 1387 | 1346 |
| 1388 abstract class LocalExecutableMixin | 1347 abstract class LocalExecutableMixin |
| 1389 implements DeserializedElementZ, ExecutableElement, LocalElement { | 1348 implements DeserializedElementZ, ExecutableElement, LocalElement { |
| 1390 ExecutableElement _executableContext; | 1349 ExecutableElement _executableContext; |
| 1391 | 1350 |
| 1392 @override | 1351 @override |
| 1393 Element get enclosingElement => executableContext; | 1352 Element get enclosingElement => executableContext; |
| 1394 | 1353 |
| 1395 @override | 1354 @override |
| (...skipping 19 matching lines...) Expand all Loading... |
| 1415 } | 1374 } |
| 1416 | 1375 |
| 1417 @override | 1376 @override |
| 1418 bool get hasTreeElements => memberContext.hasTreeElements; | 1377 bool get hasTreeElements => memberContext.hasTreeElements; |
| 1419 | 1378 |
| 1420 @override | 1379 @override |
| 1421 TreeElements get treeElements => memberContext.treeElements; | 1380 TreeElements get treeElements => memberContext.treeElements; |
| 1422 } | 1381 } |
| 1423 | 1382 |
| 1424 class LocalFunctionElementZ extends DeserializedElementZ | 1383 class LocalFunctionElementZ extends DeserializedElementZ |
| 1425 with LocalExecutableMixin, | 1384 with |
| 1426 AstElementMixin, | 1385 LocalExecutableMixin, |
| 1427 ParametersMixin, | 1386 AstElementMixin, |
| 1428 FunctionTypedElementMixin, | 1387 ParametersMixin, |
| 1429 TypedElementMixin | 1388 FunctionTypedElementMixin, |
| 1389 TypedElementMixin |
| 1430 implements LocalFunctionElement { | 1390 implements LocalFunctionElement { |
| 1431 LocalFunctionElementZ(ObjectDecoder decoder) | 1391 LocalFunctionElementZ(ObjectDecoder decoder) : super(decoder); |
| 1432 : super(decoder); | |
| 1433 | 1392 |
| 1434 @override | 1393 @override |
| 1435 accept(ElementVisitor visitor, arg) { | 1394 accept(ElementVisitor visitor, arg) { |
| 1436 return visitor.visitLocalFunctionElement(this, arg); | 1395 return visitor.visitLocalFunctionElement(this, arg); |
| 1437 } | 1396 } |
| 1438 | 1397 |
| 1439 @override | 1398 @override |
| 1440 ElementKind get kind => ElementKind.FUNCTION; | 1399 ElementKind get kind => ElementKind.FUNCTION; |
| 1441 } | 1400 } |
| 1442 | 1401 |
| 1443 abstract class GetterElementZ extends DeserializedElementZ | 1402 abstract class GetterElementZ extends DeserializedElementZ |
| 1444 with AnalyzableElementMixin, | 1403 with |
| 1445 AstElementMixin, | 1404 AnalyzableElementMixin, |
| 1446 FunctionTypedElementMixin, | 1405 AstElementMixin, |
| 1447 ParametersMixin, | 1406 FunctionTypedElementMixin, |
| 1448 TypedElementMixin, | 1407 ParametersMixin, |
| 1449 MemberElementMixin | 1408 TypedElementMixin, |
| 1409 MemberElementMixin |
| 1450 implements GetterElement { | 1410 implements GetterElement { |
| 1451 | |
| 1452 AbstractFieldElement abstractField; | 1411 AbstractFieldElement abstractField; |
| 1453 SetterElement setter; | 1412 SetterElement setter; |
| 1454 | 1413 |
| 1455 GetterElementZ(ObjectDecoder decoder) | 1414 GetterElementZ(ObjectDecoder decoder) : super(decoder); |
| 1456 : super(decoder); | |
| 1457 | 1415 |
| 1458 @override | 1416 @override |
| 1459 ElementKind get kind => ElementKind.GETTER; | 1417 ElementKind get kind => ElementKind.GETTER; |
| 1460 | 1418 |
| 1461 @override | 1419 @override |
| 1462 accept(ElementVisitor visitor, arg) { | 1420 accept(ElementVisitor visitor, arg) { |
| 1463 return visitor.visitGetterElement(this, arg); | 1421 return visitor.visitGetterElement(this, arg); |
| 1464 } | 1422 } |
| 1465 } | 1423 } |
| 1466 | 1424 |
| 1467 class TopLevelGetterElementZ extends GetterElementZ with LibraryMemberMixin { | 1425 class TopLevelGetterElementZ extends GetterElementZ with LibraryMemberMixin { |
| 1468 TopLevelGetterElementZ(ObjectDecoder decoder) | 1426 TopLevelGetterElementZ(ObjectDecoder decoder) : super(decoder); |
| 1469 : super(decoder); | |
| 1470 } | 1427 } |
| 1471 | 1428 |
| 1472 class StaticGetterElementZ extends GetterElementZ | 1429 class StaticGetterElementZ extends GetterElementZ |
| 1473 with ClassMemberMixin, StaticMemberMixin { | 1430 with ClassMemberMixin, StaticMemberMixin { |
| 1474 StaticGetterElementZ(ObjectDecoder decoder) | 1431 StaticGetterElementZ(ObjectDecoder decoder) : super(decoder); |
| 1475 : super(decoder); | |
| 1476 } | 1432 } |
| 1477 | 1433 |
| 1478 class InstanceGetterElementZ extends GetterElementZ | 1434 class InstanceGetterElementZ extends GetterElementZ |
| 1479 with ClassMemberMixin, InstanceMemberMixin { | 1435 with ClassMemberMixin, InstanceMemberMixin { |
| 1480 InstanceGetterElementZ(ObjectDecoder decoder) | 1436 InstanceGetterElementZ(ObjectDecoder decoder) : super(decoder); |
| 1481 : super(decoder); | |
| 1482 } | 1437 } |
| 1483 | 1438 |
| 1484 abstract class SetterElementZ extends DeserializedElementZ | 1439 abstract class SetterElementZ extends DeserializedElementZ |
| 1485 with AnalyzableElementMixin, | 1440 with |
| 1486 AstElementMixin, | 1441 AnalyzableElementMixin, |
| 1487 FunctionTypedElementMixin, | 1442 AstElementMixin, |
| 1488 ParametersMixin, | 1443 FunctionTypedElementMixin, |
| 1489 TypedElementMixin, | 1444 ParametersMixin, |
| 1490 MemberElementMixin | 1445 TypedElementMixin, |
| 1446 MemberElementMixin |
| 1491 implements SetterElement { | 1447 implements SetterElement { |
| 1492 | |
| 1493 AbstractFieldElement abstractField; | 1448 AbstractFieldElement abstractField; |
| 1494 GetterElement getter; | 1449 GetterElement getter; |
| 1495 | 1450 |
| 1496 SetterElementZ(ObjectDecoder decoder) | 1451 SetterElementZ(ObjectDecoder decoder) : super(decoder); |
| 1497 : super(decoder); | |
| 1498 | 1452 |
| 1499 @override | 1453 @override |
| 1500 ElementKind get kind => ElementKind.SETTER; | 1454 ElementKind get kind => ElementKind.SETTER; |
| 1501 | 1455 |
| 1502 @override | 1456 @override |
| 1503 accept(ElementVisitor visitor, arg) { | 1457 accept(ElementVisitor visitor, arg) { |
| 1504 return visitor.visitSetterElement(this, arg); | 1458 return visitor.visitSetterElement(this, arg); |
| 1505 } | 1459 } |
| 1506 } | 1460 } |
| 1507 | 1461 |
| 1508 class TopLevelSetterElementZ extends SetterElementZ with LibraryMemberMixin { | 1462 class TopLevelSetterElementZ extends SetterElementZ with LibraryMemberMixin { |
| 1509 TopLevelSetterElementZ(ObjectDecoder decoder) | 1463 TopLevelSetterElementZ(ObjectDecoder decoder) : super(decoder); |
| 1510 : super(decoder); | |
| 1511 } | 1464 } |
| 1512 | 1465 |
| 1513 class StaticSetterElementZ extends SetterElementZ | 1466 class StaticSetterElementZ extends SetterElementZ |
| 1514 with ClassMemberMixin, StaticMemberMixin { | 1467 with ClassMemberMixin, StaticMemberMixin { |
| 1515 StaticSetterElementZ(ObjectDecoder decoder) | 1468 StaticSetterElementZ(ObjectDecoder decoder) : super(decoder); |
| 1516 : super(decoder); | |
| 1517 } | 1469 } |
| 1518 | 1470 |
| 1519 class InstanceSetterElementZ extends SetterElementZ | 1471 class InstanceSetterElementZ extends SetterElementZ |
| 1520 with ClassMemberMixin, InstanceMemberMixin { | 1472 with ClassMemberMixin, InstanceMemberMixin { |
| 1521 InstanceSetterElementZ(ObjectDecoder decoder) | 1473 InstanceSetterElementZ(ObjectDecoder decoder) : super(decoder); |
| 1522 : super(decoder); | |
| 1523 } | 1474 } |
| 1524 | 1475 |
| 1525 abstract class TypeDeclarationMixin<T extends GenericType> | 1476 abstract class TypeDeclarationMixin<T extends GenericType> |
| 1526 implements ElementZ, TypeDeclarationElement { | 1477 implements ElementZ, TypeDeclarationElement { |
| 1527 List<DartType> _typeVariables; | 1478 List<DartType> _typeVariables; |
| 1528 T _rawType; | 1479 T _rawType; |
| 1529 T _thisType; | 1480 T _thisType; |
| 1530 Name _memberName; | 1481 Name _memberName; |
| 1531 | 1482 |
| 1532 Name get memberName { | 1483 Name get memberName { |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1568 } | 1519 } |
| 1569 | 1520 |
| 1570 @override | 1521 @override |
| 1571 T computeType(Resolution resolution) => thisType; | 1522 T computeType(Resolution resolution) => thisType; |
| 1572 | 1523 |
| 1573 @override | 1524 @override |
| 1574 bool get isResolved => true; | 1525 bool get isResolved => true; |
| 1575 } | 1526 } |
| 1576 | 1527 |
| 1577 class TypedefElementZ extends DeserializedElementZ | 1528 class TypedefElementZ extends DeserializedElementZ |
| 1578 with AnalyzableElementMixin, | 1529 with |
| 1579 AstElementMixin, | 1530 AnalyzableElementMixin, |
| 1580 LibraryMemberMixin, | 1531 AstElementMixin, |
| 1581 ParametersMixin, | 1532 LibraryMemberMixin, |
| 1582 TypeDeclarationMixin<TypedefType> | 1533 ParametersMixin, |
| 1534 TypeDeclarationMixin<TypedefType> |
| 1583 implements TypedefElement { | 1535 implements TypedefElement { |
| 1584 DartType _alias; | 1536 DartType _alias; |
| 1585 | 1537 |
| 1586 TypedefElementZ(ObjectDecoder decoder) | 1538 TypedefElementZ(ObjectDecoder decoder) : super(decoder); |
| 1587 : super(decoder); | |
| 1588 | 1539 |
| 1589 TypedefType _createType(List<DartType> typeArguments) { | 1540 TypedefType _createType(List<DartType> typeArguments) { |
| 1590 return new TypedefType(this, typeArguments); | 1541 return new TypedefType(this, typeArguments); |
| 1591 } | 1542 } |
| 1592 | 1543 |
| 1593 @override | 1544 @override |
| 1594 List<DartType> _getTypeVariables() { | 1545 List<DartType> _getTypeVariables() { |
| 1595 return _decoder.getTypes(Key.TYPE_VARIABLES, isOptional: true); | 1546 return _decoder.getTypes(Key.TYPE_VARIABLES, isOptional: true); |
| 1596 } | 1547 } |
| 1597 | 1548 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 1612 } | 1563 } |
| 1613 | 1564 |
| 1614 @override | 1565 @override |
| 1615 void ensureResolved(Resolution resolution) {} | 1566 void ensureResolved(Resolution resolution) {} |
| 1616 | 1567 |
| 1617 @override | 1568 @override |
| 1618 void checkCyclicReference(Resolution resolution) {} | 1569 void checkCyclicReference(Resolution resolution) {} |
| 1619 } | 1570 } |
| 1620 | 1571 |
| 1621 class TypeVariableElementZ extends DeserializedElementZ | 1572 class TypeVariableElementZ extends DeserializedElementZ |
| 1622 with AnalyzableElementMixin, | 1573 with AnalyzableElementMixin, AstElementMixin, TypedElementMixin |
| 1623 AstElementMixin, | |
| 1624 TypedElementMixin | |
| 1625 implements TypeVariableElement { | 1574 implements TypeVariableElement { |
| 1626 TypeDeclarationElement _typeDeclaration; | 1575 TypeDeclarationElement _typeDeclaration; |
| 1627 TypeVariableType _type; | 1576 TypeVariableType _type; |
| 1628 DartType _bound; | 1577 DartType _bound; |
| 1629 Name _memberName; | 1578 Name _memberName; |
| 1630 | 1579 |
| 1631 TypeVariableElementZ(ObjectDecoder decoder) | 1580 TypeVariableElementZ(ObjectDecoder decoder) : super(decoder); |
| 1632 : super(decoder); | |
| 1633 | 1581 |
| 1634 Name get memberName { | 1582 Name get memberName { |
| 1635 if (_memberName == null) { | 1583 if (_memberName == null) { |
| 1636 _memberName = new Name(name, library); | 1584 _memberName = new Name(name, library); |
| 1637 } | 1585 } |
| 1638 return _memberName; | 1586 return _memberName; |
| 1639 } | 1587 } |
| 1640 | 1588 |
| 1641 @override | 1589 @override |
| 1642 ElementKind get kind => ElementKind.TYPE_VARIABLE; | 1590 ElementKind get kind => ElementKind.TYPE_VARIABLE; |
| (...skipping 13 matching lines...) Expand all Loading... |
| 1656 | 1604 |
| 1657 @override | 1605 @override |
| 1658 Element get enclosingClass => typeDeclaration; | 1606 Element get enclosingClass => typeDeclaration; |
| 1659 | 1607 |
| 1660 @override | 1608 @override |
| 1661 int get index => _decoder.getInt(Key.INDEX); | 1609 int get index => _decoder.getInt(Key.INDEX); |
| 1662 | 1610 |
| 1663 @override | 1611 @override |
| 1664 TypeDeclarationElement get typeDeclaration { | 1612 TypeDeclarationElement get typeDeclaration { |
| 1665 if (_typeDeclaration == null) { | 1613 if (_typeDeclaration == null) { |
| 1666 _typeDeclaration = | 1614 _typeDeclaration = _decoder.getElement(Key.TYPE_DECLARATION); |
| 1667 _decoder.getElement(Key.TYPE_DECLARATION); | |
| 1668 } | 1615 } |
| 1669 return _typeDeclaration; | 1616 return _typeDeclaration; |
| 1670 } | 1617 } |
| 1671 | 1618 |
| 1672 DartType get bound { | 1619 DartType get bound { |
| 1673 if (_bound == null) { | 1620 if (_bound == null) { |
| 1674 _bound = _decoder.getType(Key.BOUND); | 1621 _bound = _decoder.getType(Key.BOUND); |
| 1675 } | 1622 } |
| 1676 return _bound; | 1623 return _bound; |
| 1677 } | 1624 } |
| 1678 | 1625 |
| 1679 @override | 1626 @override |
| 1680 LibraryElement get library => typeDeclaration.library; | 1627 LibraryElement get library => typeDeclaration.library; |
| 1681 } | 1628 } |
| 1682 | 1629 |
| 1683 class SyntheticTypeVariableElementZ extends ElementZ | 1630 class SyntheticTypeVariableElementZ extends ElementZ |
| 1684 with AnalyzableElementMixin, | 1631 with AnalyzableElementMixin, AstElementMixin |
| 1685 AstElementMixin | |
| 1686 implements TypeVariableElement { | 1632 implements TypeVariableElement { |
| 1687 final TypeDeclarationElement typeDeclaration; | 1633 final TypeDeclarationElement typeDeclaration; |
| 1688 final int index; | 1634 final int index; |
| 1689 final String name; | 1635 final String name; |
| 1690 TypeVariableType _type; | 1636 TypeVariableType _type; |
| 1691 DartType _bound; | 1637 DartType _bound; |
| 1692 Name _memberName; | 1638 Name _memberName; |
| 1693 | 1639 |
| 1694 SyntheticTypeVariableElementZ(this.typeDeclaration, this.index, this.name); | 1640 SyntheticTypeVariableElementZ(this.typeDeclaration, this.index, this.name); |
| 1695 | 1641 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 1709 } | 1655 } |
| 1710 | 1656 |
| 1711 @override | 1657 @override |
| 1712 CompilationUnitElement get compilationUnit { | 1658 CompilationUnitElement get compilationUnit { |
| 1713 return typeDeclaration.compilationUnit; | 1659 return typeDeclaration.compilationUnit; |
| 1714 } | 1660 } |
| 1715 | 1661 |
| 1716 @override | 1662 @override |
| 1717 TypeVariableType get type { | 1663 TypeVariableType get type { |
| 1718 assert(invariant(this, _type != null, | 1664 assert(invariant(this, _type != null, |
| 1719 message: "Type variable type has not been set on $this.")); | 1665 message: "Type variable type has not been set on $this.")); |
| 1720 return _type; | 1666 return _type; |
| 1721 } | 1667 } |
| 1722 | 1668 |
| 1723 @override | 1669 @override |
| 1724 TypeVariableType computeType(Resolution resolution) => type; | 1670 TypeVariableType computeType(Resolution resolution) => type; |
| 1725 | 1671 |
| 1726 @override | 1672 @override |
| 1727 Element get enclosingElement => typeDeclaration; | 1673 Element get enclosingElement => typeDeclaration; |
| 1728 | 1674 |
| 1729 @override | 1675 @override |
| 1730 Element get enclosingClass => typeDeclaration; | 1676 Element get enclosingClass => typeDeclaration; |
| 1731 | 1677 |
| 1732 DartType get bound { | 1678 DartType get bound { |
| 1733 assert(invariant(this, _bound != null, | 1679 assert(invariant(this, _bound != null, |
| 1734 message: "Type variable bound has not been set on $this.")); | 1680 message: "Type variable bound has not been set on $this.")); |
| 1735 return _bound; | 1681 return _bound; |
| 1736 } | 1682 } |
| 1737 | 1683 |
| 1738 @override | 1684 @override |
| 1739 LibraryElement get library => typeDeclaration.library; | 1685 LibraryElement get library => typeDeclaration.library; |
| 1740 | 1686 |
| 1741 @override | 1687 @override |
| 1742 SourceSpan get sourcePosition => typeDeclaration.sourcePosition; | 1688 SourceSpan get sourcePosition => typeDeclaration.sourcePosition; |
| 1743 } | 1689 } |
| 1744 | 1690 |
| 1745 class ParameterElementZ extends DeserializedElementZ | 1691 class ParameterElementZ extends DeserializedElementZ |
| 1746 with AnalyzableElementMixin, | 1692 with AnalyzableElementMixin, AstElementMixin, TypedElementMixin |
| 1747 AstElementMixin, | |
| 1748 TypedElementMixin | |
| 1749 implements ParameterElement { | 1693 implements ParameterElement { |
| 1750 FunctionElement _functionDeclaration; | 1694 FunctionElement _functionDeclaration; |
| 1751 ConstantExpression _constant; | 1695 ConstantExpression _constant; |
| 1752 DartType _type; | 1696 DartType _type; |
| 1753 | 1697 |
| 1754 ParameterElementZ(ObjectDecoder decoder) : super(decoder); | 1698 ParameterElementZ(ObjectDecoder decoder) : super(decoder); |
| 1755 | 1699 |
| 1756 @override | 1700 @override |
| 1757 accept(ElementVisitor visitor, arg) { | 1701 accept(ElementVisitor visitor, arg) { |
| 1758 return visitor.visitParameterElement(this, arg); | 1702 return visitor.visitParameterElement(this, arg); |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1807 LibraryElement get library => executableContext.library; | 1751 LibraryElement get library => executableContext.library; |
| 1808 | 1752 |
| 1809 @override | 1753 @override |
| 1810 MemberElement get memberContext => executableContext.memberContext; | 1754 MemberElement get memberContext => executableContext.memberContext; |
| 1811 } | 1755 } |
| 1812 | 1756 |
| 1813 class InitializingFormalElementZ extends ParameterElementZ | 1757 class InitializingFormalElementZ extends ParameterElementZ |
| 1814 implements InitializingFormalElement { | 1758 implements InitializingFormalElement { |
| 1815 FieldElement _fieldElement; | 1759 FieldElement _fieldElement; |
| 1816 | 1760 |
| 1817 InitializingFormalElementZ(ObjectDecoder decoder) | 1761 InitializingFormalElementZ(ObjectDecoder decoder) : super(decoder); |
| 1818 : super(decoder); | |
| 1819 | 1762 |
| 1820 @override | 1763 @override |
| 1821 FieldElement get fieldElement { | 1764 FieldElement get fieldElement { |
| 1822 if (_fieldElement == null) { | 1765 if (_fieldElement == null) { |
| 1823 _fieldElement = _decoder.getElement(Key.FIELD); | 1766 _fieldElement = _decoder.getElement(Key.FIELD); |
| 1824 } | 1767 } |
| 1825 return _fieldElement; | 1768 return _fieldElement; |
| 1826 } | 1769 } |
| 1827 | 1770 |
| 1828 @override | 1771 @override |
| 1829 accept(ElementVisitor visitor, arg) { | 1772 accept(ElementVisitor visitor, arg) { |
| 1830 return visitor.visitFieldParameterElement(this, arg); | 1773 return visitor.visitFieldParameterElement(this, arg); |
| 1831 } | 1774 } |
| 1832 | 1775 |
| 1833 @override | 1776 @override |
| 1834 ElementKind get kind => ElementKind.INITIALIZING_FORMAL; | 1777 ElementKind get kind => ElementKind.INITIALIZING_FORMAL; |
| 1835 } | 1778 } |
| 1836 | 1779 |
| 1837 class ImportElementZ extends DeserializedElementZ | 1780 class ImportElementZ extends DeserializedElementZ |
| 1838 with LibraryMemberMixin implements ImportElement { | 1781 with LibraryMemberMixin |
| 1782 implements ImportElement { |
| 1839 bool _isDeferred; | 1783 bool _isDeferred; |
| 1840 PrefixElement _prefix; | 1784 PrefixElement _prefix; |
| 1841 LibraryElement _importedLibrary; | 1785 LibraryElement _importedLibrary; |
| 1842 Uri _uri; | 1786 Uri _uri; |
| 1843 | 1787 |
| 1844 ImportElementZ(ObjectDecoder decoder) | 1788 ImportElementZ(ObjectDecoder decoder) : super(decoder); |
| 1845 : super(decoder); | |
| 1846 | 1789 |
| 1847 @override | 1790 @override |
| 1848 String get name => ''; | 1791 String get name => ''; |
| 1849 | 1792 |
| 1850 @override | 1793 @override |
| 1851 accept(ElementVisitor visitor, arg) => visitor.visitImportElement(this, arg); | 1794 accept(ElementVisitor visitor, arg) => visitor.visitImportElement(this, arg); |
| 1852 | 1795 |
| 1853 @override | 1796 @override |
| 1854 ElementKind get kind => ElementKind.IMPORT; | 1797 ElementKind get kind => ElementKind.IMPORT; |
| 1855 | 1798 |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1888 return _uri; | 1831 return _uri; |
| 1889 } | 1832 } |
| 1890 | 1833 |
| 1891 @override | 1834 @override |
| 1892 Import get node => _unsupported('node'); | 1835 Import get node => _unsupported('node'); |
| 1893 | 1836 |
| 1894 String toString() => 'Z$kind($uri)'; | 1837 String toString() => 'Z$kind($uri)'; |
| 1895 } | 1838 } |
| 1896 | 1839 |
| 1897 class ExportElementZ extends DeserializedElementZ | 1840 class ExportElementZ extends DeserializedElementZ |
| 1898 with LibraryMemberMixin implements ExportElement { | 1841 with LibraryMemberMixin |
| 1842 implements ExportElement { |
| 1899 LibraryElement _exportedLibrary; | 1843 LibraryElement _exportedLibrary; |
| 1900 Uri _uri; | 1844 Uri _uri; |
| 1901 | 1845 |
| 1902 ExportElementZ(ObjectDecoder decoder) | 1846 ExportElementZ(ObjectDecoder decoder) : super(decoder); |
| 1903 : super(decoder); | |
| 1904 | 1847 |
| 1905 @override | 1848 @override |
| 1906 String get name => ''; | 1849 String get name => ''; |
| 1907 | 1850 |
| 1908 @override | 1851 @override |
| 1909 accept(ElementVisitor visitor, arg) => visitor.visitExportElement(this, arg); | 1852 accept(ElementVisitor visitor, arg) => visitor.visitExportElement(this, arg); |
| 1910 | 1853 |
| 1911 @override | 1854 @override |
| 1912 ElementKind get kind => ElementKind.EXPORT; | 1855 ElementKind get kind => ElementKind.EXPORT; |
| 1913 | 1856 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 1927 return _uri; | 1870 return _uri; |
| 1928 } | 1871 } |
| 1929 | 1872 |
| 1930 @override | 1873 @override |
| 1931 Export get node => _unsupported('node'); | 1874 Export get node => _unsupported('node'); |
| 1932 | 1875 |
| 1933 String toString() => 'Z$kind($uri)'; | 1876 String toString() => 'Z$kind($uri)'; |
| 1934 } | 1877 } |
| 1935 | 1878 |
| 1936 class PrefixElementZ extends DeserializedElementZ | 1879 class PrefixElementZ extends DeserializedElementZ |
| 1937 with LibraryMemberMixin implements PrefixElement { | 1880 with LibraryMemberMixin |
| 1881 implements PrefixElement { |
| 1938 bool _isDeferred; | 1882 bool _isDeferred; |
| 1939 ImportElement _deferredImport; | 1883 ImportElement _deferredImport; |
| 1940 | 1884 |
| 1941 PrefixElementZ(ObjectDecoder decoder) | 1885 PrefixElementZ(ObjectDecoder decoder) : super(decoder); |
| 1942 : super(decoder); | |
| 1943 | 1886 |
| 1944 @override | 1887 @override |
| 1945 accept(ElementVisitor visitor, arg) => visitor.visitPrefixElement(this, arg); | 1888 accept(ElementVisitor visitor, arg) => visitor.visitPrefixElement(this, arg); |
| 1946 | 1889 |
| 1947 void _ensureDeferred() { | 1890 void _ensureDeferred() { |
| 1948 if (_isDeferred == null) { | 1891 if (_isDeferred == null) { |
| 1949 _isDeferred = _decoder.getBool(Key.IS_DEFERRED); | 1892 _isDeferred = _decoder.getBool(Key.IS_DEFERRED); |
| 1950 _deferredImport = _decoder.getElement(Key.IMPORT, isOptional: true); | 1893 _deferredImport = _decoder.getElement(Key.IMPORT, isOptional: true); |
| 1951 } | 1894 } |
| 1952 } | 1895 } |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1964 } | 1907 } |
| 1965 | 1908 |
| 1966 @override | 1909 @override |
| 1967 ElementKind get kind => ElementKind.PREFIX; | 1910 ElementKind get kind => ElementKind.PREFIX; |
| 1968 | 1911 |
| 1969 @override | 1912 @override |
| 1970 Element lookupLocalMember(String memberName) { | 1913 Element lookupLocalMember(String memberName) { |
| 1971 return _unsupported('lookupLocalMember'); | 1914 return _unsupported('lookupLocalMember'); |
| 1972 } | 1915 } |
| 1973 } | 1916 } |
| OLD | NEW |