| 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 library analyzer.src.dart.element.element; | 5 library analyzer.src.dart.element.element; |
| 6 | 6 |
| 7 import 'dart:collection'; | 7 import 'dart:collection'; |
| 8 import 'dart:math' show min; | 8 import 'dart:math' show min; |
| 9 | 9 |
| 10 import 'package:analyzer/dart/ast/ast.dart'; | 10 import 'package:analyzer/dart/ast/ast.dart'; |
| (...skipping 566 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 577 void set constructors(List<ConstructorElement> constructors) { | 577 void set constructors(List<ConstructorElement> constructors) { |
| 578 assert(_unlinkedClass == null); | 578 assert(_unlinkedClass == null); |
| 579 assert(!isMixinApplication); | 579 assert(!isMixinApplication); |
| 580 for (ConstructorElement constructor in constructors) { | 580 for (ConstructorElement constructor in constructors) { |
| 581 (constructor as ConstructorElementImpl).enclosingElement = this; | 581 (constructor as ConstructorElementImpl).enclosingElement = this; |
| 582 } | 582 } |
| 583 this._constructors = constructors; | 583 this._constructors = constructors; |
| 584 } | 584 } |
| 585 | 585 |
| 586 @override | 586 @override |
| 587 SourceRange get docRange { | |
| 588 if (_unlinkedClass != null) { | |
| 589 UnlinkedDocumentationComment comment = | |
| 590 _unlinkedClass.documentationComment; | |
| 591 return comment != null | |
| 592 ? new SourceRange(comment.offset, comment.length) | |
| 593 : null; | |
| 594 } | |
| 595 return super.docRange; | |
| 596 } | |
| 597 | |
| 598 @override | |
| 599 String get documentationComment { | 587 String get documentationComment { |
| 600 if (_unlinkedClass != null) { | 588 if (_unlinkedClass != null) { |
| 601 return _unlinkedClass?.documentationComment?.text; | 589 return _unlinkedClass?.documentationComment?.text; |
| 602 } | 590 } |
| 603 return super.documentationComment; | 591 return super.documentationComment; |
| 604 } | 592 } |
| 605 | 593 |
| 606 /** | 594 /** |
| 607 * Return `true` if [CompileTimeErrorCode.MIXIN_HAS_NO_CONSTRUCTORS] should | 595 * Return `true` if [CompileTimeErrorCode.MIXIN_HAS_NO_CONSTRUCTORS] should |
| 608 * be reported for this class. | 596 * be reported for this class. |
| (...skipping 1198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1807 */ | 1795 */ |
| 1808 class ConstFieldElementImpl_EnumValue extends ConstFieldElementImpl_ofEnum { | 1796 class ConstFieldElementImpl_EnumValue extends ConstFieldElementImpl_ofEnum { |
| 1809 final UnlinkedEnumValue _unlinkedEnumValue; | 1797 final UnlinkedEnumValue _unlinkedEnumValue; |
| 1810 final int _index; | 1798 final int _index; |
| 1811 | 1799 |
| 1812 ConstFieldElementImpl_EnumValue( | 1800 ConstFieldElementImpl_EnumValue( |
| 1813 EnumElementImpl enumElement, this._unlinkedEnumValue, this._index) | 1801 EnumElementImpl enumElement, this._unlinkedEnumValue, this._index) |
| 1814 : super(enumElement); | 1802 : super(enumElement); |
| 1815 | 1803 |
| 1816 @override | 1804 @override |
| 1817 SourceRange get docRange { | |
| 1818 if (_unlinkedEnumValue != null) { | |
| 1819 UnlinkedDocumentationComment comment = | |
| 1820 _unlinkedEnumValue.documentationComment; | |
| 1821 return comment != null | |
| 1822 ? new SourceRange(comment.offset, comment.length) | |
| 1823 : null; | |
| 1824 } | |
| 1825 return super.docRange; | |
| 1826 } | |
| 1827 | |
| 1828 @override | |
| 1829 String get documentationComment { | 1805 String get documentationComment { |
| 1830 if (_unlinkedEnumValue != null) { | 1806 if (_unlinkedEnumValue != null) { |
| 1831 return _unlinkedEnumValue?.documentationComment?.text; | 1807 return _unlinkedEnumValue?.documentationComment?.text; |
| 1832 } | 1808 } |
| 1833 return super.documentationComment; | 1809 return super.documentationComment; |
| 1834 } | 1810 } |
| 1835 | 1811 |
| 1836 @override | 1812 @override |
| 1837 EvaluationResultImpl get evaluationResult { | 1813 EvaluationResultImpl get evaluationResult { |
| 1838 if (_evaluationResult == null) { | 1814 if (_evaluationResult == null) { |
| (...skipping 847 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2686 * A cached copy of the calculated location for this element. | 2662 * A cached copy of the calculated location for this element. |
| 2687 */ | 2663 */ |
| 2688 ElementLocation _cachedLocation; | 2664 ElementLocation _cachedLocation; |
| 2689 | 2665 |
| 2690 /** | 2666 /** |
| 2691 * The documentation comment for this element. | 2667 * The documentation comment for this element. |
| 2692 */ | 2668 */ |
| 2693 String _docComment; | 2669 String _docComment; |
| 2694 | 2670 |
| 2695 /** | 2671 /** |
| 2696 * The offset to the beginning of the documentation comment, | |
| 2697 * or `null` if this element does not have a documentation comment. | |
| 2698 */ | |
| 2699 int _docRangeOffset; | |
| 2700 | |
| 2701 /** | |
| 2702 * The length of the documentation comment range for this element. | |
| 2703 */ | |
| 2704 int _docRangeLength; | |
| 2705 | |
| 2706 /** | |
| 2707 * The offset of the beginning of the element's code in the file that contains | 2672 * The offset of the beginning of the element's code in the file that contains |
| 2708 * the element, or `null` if the element is synthetic. | 2673 * the element, or `null` if the element is synthetic. |
| 2709 */ | 2674 */ |
| 2710 int _codeOffset; | 2675 int _codeOffset; |
| 2711 | 2676 |
| 2712 /** | 2677 /** |
| 2713 * The length of the element's code, or `null` if the element is synthetic. | 2678 * The length of the element's code, or `null` if the element is synthetic. |
| 2714 */ | 2679 */ |
| 2715 int _codeLength; | 2680 int _codeLength; |
| 2716 | 2681 |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2749 if (_enclosingElement == null) { | 2714 if (_enclosingElement == null) { |
| 2750 return null; | 2715 return null; |
| 2751 } | 2716 } |
| 2752 return _enclosingElement.context; | 2717 return _enclosingElement.context; |
| 2753 } | 2718 } |
| 2754 | 2719 |
| 2755 @override | 2720 @override |
| 2756 String get displayName => _name; | 2721 String get displayName => _name; |
| 2757 | 2722 |
| 2758 @override | 2723 @override |
| 2759 SourceRange get docRange { | |
| 2760 if (_docRangeOffset != null && _docRangeLength != null) { | |
| 2761 return new SourceRange(_docRangeOffset, _docRangeLength); | |
| 2762 } | |
| 2763 return null; | |
| 2764 } | |
| 2765 | |
| 2766 @override | |
| 2767 String get documentationComment => _docComment; | 2724 String get documentationComment => _docComment; |
| 2768 | 2725 |
| 2769 /** | 2726 /** |
| 2770 * The documentation comment source for this element. | 2727 * The documentation comment source for this element. |
| 2771 */ | 2728 */ |
| 2772 void set documentationComment(String doc) { | 2729 void set documentationComment(String doc) { |
| 2773 assert(!isResynthesized); | 2730 assert(!isResynthesized); |
| 2774 _docComment = doc?.replaceAll('\r\n', '\n'); | 2731 _docComment = doc?.replaceAll('\r\n', '\n'); |
| 2775 } | 2732 } |
| 2776 | 2733 |
| (...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3101 /** | 3058 /** |
| 3102 * Set the code range for this element. | 3059 * Set the code range for this element. |
| 3103 */ | 3060 */ |
| 3104 void setCodeRange(int offset, int length) { | 3061 void setCodeRange(int offset, int length) { |
| 3105 assert(!isResynthesized); | 3062 assert(!isResynthesized); |
| 3106 _codeOffset = offset; | 3063 _codeOffset = offset; |
| 3107 _codeLength = length; | 3064 _codeLength = length; |
| 3108 } | 3065 } |
| 3109 | 3066 |
| 3110 /** | 3067 /** |
| 3111 * Set the documentation comment source range for this element. | |
| 3112 */ | |
| 3113 void setDocRange(int offset, int length) { | |
| 3114 assert(!isResynthesized); | |
| 3115 _docRangeOffset = offset; | |
| 3116 _docRangeLength = length; | |
| 3117 } | |
| 3118 | |
| 3119 /** | |
| 3120 * Set whether the given [modifier] is associated with this element to | 3068 * Set whether the given [modifier] is associated with this element to |
| 3121 * correspond to the given [value]. | 3069 * correspond to the given [value]. |
| 3122 */ | 3070 */ |
| 3123 void setModifier(Modifier modifier, bool value) { | 3071 void setModifier(Modifier modifier, bool value) { |
| 3124 _modifiers = BooleanArray.setEnum(_modifiers, modifier, value); | 3072 _modifiers = BooleanArray.setEnum(_modifiers, modifier, value); |
| 3125 } | 3073 } |
| 3126 | 3074 |
| 3127 @override | 3075 @override |
| 3128 String toString() { | 3076 String toString() { |
| 3129 StringBuffer buffer = new StringBuffer(); | 3077 StringBuffer buffer = new StringBuffer(); |
| (...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3395 @override | 3343 @override |
| 3396 List<ConstructorElement> get constructors { | 3344 List<ConstructorElement> get constructors { |
| 3397 // The equivalent code for enums in the spec shows a single constructor, | 3345 // The equivalent code for enums in the spec shows a single constructor, |
| 3398 // but that constructor is not callable (since it is a compile-time error | 3346 // but that constructor is not callable (since it is a compile-time error |
| 3399 // to subclass, mix-in, implement, or explicitly instantiate an enum). | 3347 // to subclass, mix-in, implement, or explicitly instantiate an enum). |
| 3400 // So we represent this as having no constructors. | 3348 // So we represent this as having no constructors. |
| 3401 return const <ConstructorElement>[]; | 3349 return const <ConstructorElement>[]; |
| 3402 } | 3350 } |
| 3403 | 3351 |
| 3404 @override | 3352 @override |
| 3405 SourceRange get docRange { | |
| 3406 if (_unlinkedEnum != null) { | |
| 3407 UnlinkedDocumentationComment comment = _unlinkedEnum.documentationComment; | |
| 3408 return comment != null | |
| 3409 ? new SourceRange(comment.offset, comment.length) | |
| 3410 : null; | |
| 3411 } | |
| 3412 return super.docRange; | |
| 3413 } | |
| 3414 | |
| 3415 @override | |
| 3416 String get documentationComment { | 3353 String get documentationComment { |
| 3417 if (_unlinkedEnum != null) { | 3354 if (_unlinkedEnum != null) { |
| 3418 return _unlinkedEnum?.documentationComment?.text; | 3355 return _unlinkedEnum?.documentationComment?.text; |
| 3419 } | 3356 } |
| 3420 return super.documentationComment; | 3357 return super.documentationComment; |
| 3421 } | 3358 } |
| 3422 | 3359 |
| 3423 @override | 3360 @override |
| 3424 List<FieldElement> get fields { | 3361 List<FieldElement> get fields { |
| 3425 if (_unlinkedEnum != null && _fields == null) { | 3362 if (_unlinkedEnum != null && _fields == null) { |
| (...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3659 | 3596 |
| 3660 @override | 3597 @override |
| 3661 String get displayName { | 3598 String get displayName { |
| 3662 if (serializedExecutable != null) { | 3599 if (serializedExecutable != null) { |
| 3663 return serializedExecutable.name; | 3600 return serializedExecutable.name; |
| 3664 } | 3601 } |
| 3665 return super.displayName; | 3602 return super.displayName; |
| 3666 } | 3603 } |
| 3667 | 3604 |
| 3668 @override | 3605 @override |
| 3669 SourceRange get docRange { | |
| 3670 if (serializedExecutable != null) { | |
| 3671 UnlinkedDocumentationComment comment = | |
| 3672 serializedExecutable.documentationComment; | |
| 3673 return comment != null | |
| 3674 ? new SourceRange(comment.offset, comment.length) | |
| 3675 : null; | |
| 3676 } | |
| 3677 return super.docRange; | |
| 3678 } | |
| 3679 | |
| 3680 @override | |
| 3681 String get documentationComment { | 3606 String get documentationComment { |
| 3682 if (serializedExecutable != null) { | 3607 if (serializedExecutable != null) { |
| 3683 return serializedExecutable?.documentationComment?.text; | 3608 return serializedExecutable?.documentationComment?.text; |
| 3684 } | 3609 } |
| 3685 return super.documentationComment; | 3610 return super.documentationComment; |
| 3686 } | 3611 } |
| 3687 | 3612 |
| 3688 /** | 3613 /** |
| 3689 * Set whether this executable element is external. | 3614 * Set whether this executable element is external. |
| 3690 */ | 3615 */ |
| (...skipping 946 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4637 if (_unlinkedTypedef != null) { | 4562 if (_unlinkedTypedef != null) { |
| 4638 return _unlinkedTypedef.codeRange?.offset; | 4563 return _unlinkedTypedef.codeRange?.offset; |
| 4639 } | 4564 } |
| 4640 return super.codeOffset; | 4565 return super.codeOffset; |
| 4641 } | 4566 } |
| 4642 | 4567 |
| 4643 @override | 4568 @override |
| 4644 String get displayName => name; | 4569 String get displayName => name; |
| 4645 | 4570 |
| 4646 @override | 4571 @override |
| 4647 SourceRange get docRange { | |
| 4648 if (_unlinkedTypedef != null) { | |
| 4649 UnlinkedDocumentationComment comment = | |
| 4650 _unlinkedTypedef.documentationComment; | |
| 4651 return comment != null | |
| 4652 ? new SourceRange(comment.offset, comment.length) | |
| 4653 : null; | |
| 4654 } | |
| 4655 return super.docRange; | |
| 4656 } | |
| 4657 | |
| 4658 @override | |
| 4659 String get documentationComment { | 4572 String get documentationComment { |
| 4660 if (_unlinkedTypedef != null) { | 4573 if (_unlinkedTypedef != null) { |
| 4661 return _unlinkedTypedef?.documentationComment?.text; | 4574 return _unlinkedTypedef?.documentationComment?.text; |
| 4662 } | 4575 } |
| 4663 return super.documentationComment; | 4576 return super.documentationComment; |
| 4664 } | 4577 } |
| 4665 | 4578 |
| 4666 @override | 4579 @override |
| 4667 CompilationUnitElement get enclosingElement => | 4580 CompilationUnitElement get enclosingElement => |
| 4668 super.enclosingElement as CompilationUnitElement; | 4581 super.enclosingElement as CompilationUnitElement; |
| (...skipping 737 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5406 * Set the compilation unit that defines this library to the given compilation | 5319 * Set the compilation unit that defines this library to the given compilation |
| 5407 * [unit]. | 5320 * [unit]. |
| 5408 */ | 5321 */ |
| 5409 void set definingCompilationUnit(CompilationUnitElement unit) { | 5322 void set definingCompilationUnit(CompilationUnitElement unit) { |
| 5410 assert((unit as CompilationUnitElementImpl).librarySource == unit.source); | 5323 assert((unit as CompilationUnitElementImpl).librarySource == unit.source); |
| 5411 (unit as CompilationUnitElementImpl).enclosingElement = this; | 5324 (unit as CompilationUnitElementImpl).enclosingElement = this; |
| 5412 this._definingCompilationUnit = unit; | 5325 this._definingCompilationUnit = unit; |
| 5413 } | 5326 } |
| 5414 | 5327 |
| 5415 @override | 5328 @override |
| 5416 SourceRange get docRange { | |
| 5417 if (_unlinkedDefiningUnit != null) { | |
| 5418 UnlinkedDocumentationComment comment = | |
| 5419 _unlinkedDefiningUnit.libraryDocumentationComment; | |
| 5420 return comment != null | |
| 5421 ? new SourceRange(comment.offset, comment.length) | |
| 5422 : null; | |
| 5423 } | |
| 5424 return super.docRange; | |
| 5425 } | |
| 5426 | |
| 5427 @override | |
| 5428 String get documentationComment { | 5329 String get documentationComment { |
| 5429 if (_unlinkedDefiningUnit != null) { | 5330 if (_unlinkedDefiningUnit != null) { |
| 5430 return _unlinkedDefiningUnit?.libraryDocumentationComment?.text; | 5331 return _unlinkedDefiningUnit?.libraryDocumentationComment?.text; |
| 5431 } | 5332 } |
| 5432 return super.documentationComment; | 5333 return super.documentationComment; |
| 5433 } | 5334 } |
| 5434 | 5335 |
| 5435 FunctionElement get entryPoint { | 5336 FunctionElement get entryPoint { |
| 5436 if (resynthesizerContext != null) { | 5337 if (resynthesizerContext != null) { |
| 5437 _entryPoint ??= resynthesizerContext.findEntryPoint(); | 5338 _entryPoint ??= resynthesizerContext.findEntryPoint(); |
| (...skipping 1013 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6451 * list of [conflictingElements]. | 6352 * list of [conflictingElements]. |
| 6452 */ | 6353 */ |
| 6453 MultiplyDefinedElementImpl(this.context, this.conflictingElements) { | 6354 MultiplyDefinedElementImpl(this.context, this.conflictingElements) { |
| 6454 _name = conflictingElements[0].name; | 6355 _name = conflictingElements[0].name; |
| 6455 } | 6356 } |
| 6456 | 6357 |
| 6457 @override | 6358 @override |
| 6458 String get displayName => _name; | 6359 String get displayName => _name; |
| 6459 | 6360 |
| 6460 @override | 6361 @override |
| 6461 SourceRange get docRange => null; | |
| 6462 | |
| 6463 @override | |
| 6464 String get documentationComment => null; | 6362 String get documentationComment => null; |
| 6465 | 6363 |
| 6466 @override | 6364 @override |
| 6467 Element get enclosingElement => null; | 6365 Element get enclosingElement => null; |
| 6468 | 6366 |
| 6469 @override | 6367 @override |
| 6470 bool get isDeprecated => false; | 6368 bool get isDeprecated => false; |
| 6471 | 6369 |
| 6472 @override | 6370 @override |
| 6473 bool get isFactory => false; | 6371 bool get isFactory => false; |
| (...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6737 return super.codeOffset; | 6635 return super.codeOffset; |
| 6738 } | 6636 } |
| 6739 | 6637 |
| 6740 @override | 6638 @override |
| 6741 void set const3(bool isConst) { | 6639 void set const3(bool isConst) { |
| 6742 assert(_unlinkedVariable == null); | 6640 assert(_unlinkedVariable == null); |
| 6743 super.const3 = isConst; | 6641 super.const3 = isConst; |
| 6744 } | 6642 } |
| 6745 | 6643 |
| 6746 @override | 6644 @override |
| 6747 SourceRange get docRange { | |
| 6748 if (_unlinkedVariable != null) { | |
| 6749 UnlinkedDocumentationComment comment = | |
| 6750 _unlinkedVariable.documentationComment; | |
| 6751 return comment != null | |
| 6752 ? new SourceRange(comment.offset, comment.length) | |
| 6753 : null; | |
| 6754 } | |
| 6755 return super.docRange; | |
| 6756 } | |
| 6757 | |
| 6758 @override | |
| 6759 String get documentationComment { | 6645 String get documentationComment { |
| 6760 if (_unlinkedVariable != null) { | 6646 if (_unlinkedVariable != null) { |
| 6761 return _unlinkedVariable?.documentationComment?.text; | 6647 return _unlinkedVariable?.documentationComment?.text; |
| 6762 } | 6648 } |
| 6763 return super.documentationComment; | 6649 return super.documentationComment; |
| 6764 } | 6650 } |
| 6765 | 6651 |
| 6766 @override | 6652 @override |
| 6767 void set final2(bool isFinal) { | 6653 void set final2(bool isFinal) { |
| 6768 assert(_unlinkedVariable == null); | 6654 assert(_unlinkedVariable == null); |
| (...skipping 1710 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8479 | 8365 |
| 8480 @override | 8366 @override |
| 8481 void visitElement(Element element) { | 8367 void visitElement(Element element) { |
| 8482 int offset = element.nameOffset; | 8368 int offset = element.nameOffset; |
| 8483 if (offset != -1) { | 8369 if (offset != -1) { |
| 8484 map[offset] = element; | 8370 map[offset] = element; |
| 8485 } | 8371 } |
| 8486 super.visitElement(element); | 8372 super.visitElement(element); |
| 8487 } | 8373 } |
| 8488 } | 8374 } |
| OLD | NEW |