Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Side by Side Diff: pkg/analyzer/lib/src/dart/element/element.dart

Issue 2972103002: Remove ExecutableElement.labels altogether. (Closed)
Patch Set: Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 3543 matching lines...) Expand 10 before | Expand all | Expand 10 after
3554 */ 3554 */
3555 final UnlinkedExecutable serializedExecutable; 3555 final UnlinkedExecutable serializedExecutable;
3556 3556
3557 /** 3557 /**
3558 * A list containing all of the functions defined within this executable 3558 * A list containing all of the functions defined within this executable
3559 * element. 3559 * element.
3560 */ 3560 */
3561 List<FunctionElement> _functions; 3561 List<FunctionElement> _functions;
3562 3562
3563 /** 3563 /**
3564 * A list containing all of the labels defined within this executable element.
3565 */
3566 List<LabelElement> _labels;
3567
3568 /**
3569 * A list containing all of the parameters defined by this executable element. 3564 * A list containing all of the parameters defined by this executable element.
3570 */ 3565 */
3571 List<ParameterElement> _parameters; 3566 List<ParameterElement> _parameters;
3572 3567
3573 /** 3568 /**
3574 * The declared return type of this executable element. 3569 * The declared return type of this executable element.
3575 */ 3570 */
3576 DartType _declaredReturnType; 3571 DartType _declaredReturnType;
3577 3572
3578 /** 3573 /**
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
3738 return hasModifier(Modifier.GENERATOR); 3733 return hasModifier(Modifier.GENERATOR);
3739 } 3734 }
3740 3735
3741 @override 3736 @override
3742 bool get isOperator => false; 3737 bool get isOperator => false;
3743 3738
3744 @override 3739 @override
3745 bool get isSynchronous => !isAsynchronous; 3740 bool get isSynchronous => !isAsynchronous;
3746 3741
3747 @override 3742 @override
3748 List<LabelElement> get labels {
3749 if (serializedExecutable != null) {
3750 _labels ??= LabelElementImpl.resynthesizeList(
3751 this, serializedExecutable.localLabels);
3752 }
3753 return _labels ?? const <LabelElement>[];
3754 }
3755
3756 /**
3757 * Set the labels defined within this executable element to the given
3758 * [labels].
3759 */
3760 void set labels(List<LabelElement> labels) {
3761 _assertNotResynthesized(serializedExecutable);
3762 for (LabelElement label in labels) {
3763 (label as LabelElementImpl).enclosingElement = this;
3764 }
3765 this._labels = labels;
3766 }
3767
3768 @override
3769 List<ElementAnnotation> get metadata { 3743 List<ElementAnnotation> get metadata {
3770 if (serializedExecutable != null) { 3744 if (serializedExecutable != null) {
3771 return _metadata ??= 3745 return _metadata ??=
3772 _buildAnnotations(enclosingUnit, serializedExecutable.annotations); 3746 _buildAnnotations(enclosingUnit, serializedExecutable.annotations);
3773 } 3747 }
3774 return super.metadata; 3748 return super.metadata;
3775 } 3749 }
3776 3750
3777 @override 3751 @override
3778 String get name { 3752 String get name {
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
3917 } 3891 }
3918 3892
3919 @override 3893 @override
3920 ElementImpl getChild(String identifier) { 3894 ElementImpl getChild(String identifier) {
3921 for (FunctionElement function in _functions) { 3895 for (FunctionElement function in _functions) {
3922 FunctionElementImpl functionImpl = function; 3896 FunctionElementImpl functionImpl = function;
3923 if (functionImpl.identifier == identifier) { 3897 if (functionImpl.identifier == identifier) {
3924 return functionImpl; 3898 return functionImpl;
3925 } 3899 }
3926 } 3900 }
3927 for (LabelElement label in _labels) {
3928 LabelElementImpl labelImpl = label;
3929 if (labelImpl.identifier == identifier) {
3930 return labelImpl;
3931 }
3932 }
3933 for (ParameterElement parameter in parameters) { 3901 for (ParameterElement parameter in parameters) {
3934 ParameterElementImpl parameterImpl = parameter; 3902 ParameterElementImpl parameterImpl = parameter;
3935 if (parameterImpl.identifier == identifier) { 3903 if (parameterImpl.identifier == identifier) {
3936 return parameterImpl; 3904 return parameterImpl;
3937 } 3905 }
3938 } 3906 }
3939 return null; 3907 return null;
3940 } 3908 }
3941 3909
3942 @override 3910 @override
3943 void visitChildren(ElementVisitor visitor) { 3911 void visitChildren(ElementVisitor visitor) {
3944 super.visitChildren(visitor); 3912 super.visitChildren(visitor);
3945 _safelyVisitPossibleChild(returnType, visitor); 3913 _safelyVisitPossibleChild(returnType, visitor);
3946 safelyVisitChildren(typeParameters, visitor); 3914 safelyVisitChildren(typeParameters, visitor);
3947 safelyVisitChildren(parameters, visitor); 3915 safelyVisitChildren(parameters, visitor);
3948 safelyVisitChildren(functions, visitor); 3916 safelyVisitChildren(functions, visitor);
3949 safelyVisitChildren(labels, visitor);
3950 } 3917 }
3951 } 3918 }
3952 3919
3953 /** 3920 /**
3954 * A concrete implementation of an [ExportElement]. 3921 * A concrete implementation of an [ExportElement].
3955 */ 3922 */
3956 class ExportElementImpl extends UriReferencedElementImpl 3923 class ExportElementImpl extends UriReferencedElementImpl
3957 implements ExportElement { 3924 implements ExportElement {
3958 /** 3925 /**
3959 * The unlinked representation of the export in the summary. 3926 * The unlinked representation of the export in the summary.
(...skipping 5007 matching lines...) Expand 10 before | Expand all | Expand 10 after
8967 8934
8968 @override 8935 @override
8969 DartObject computeConstantValue() => null; 8936 DartObject computeConstantValue() => null;
8970 8937
8971 @override 8938 @override
8972 void visitChildren(ElementVisitor visitor) { 8939 void visitChildren(ElementVisitor visitor) {
8973 super.visitChildren(visitor); 8940 super.visitChildren(visitor);
8974 _initializer?.accept(visitor); 8941 _initializer?.accept(visitor);
8975 } 8942 }
8976 } 8943 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/dart/element/builder.dart ('k') | pkg/analyzer/lib/src/dart/element/handle.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698