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

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

Issue 1320923003: Implement a task to compute the dependencies between static variables (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Address comments Created 5 years, 3 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
« no previous file with comments | « no previous file | pkg/analyzer/lib/src/generated/element_handle.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 engine.element; 5 library engine.element;
6 6
7 import 'dart:collection'; 7 import 'dart:collection';
8 8
9 import 'package:analyzer/src/generated/utilities_general.dart'; 9 import 'package:analyzer/src/generated/utilities_general.dart';
10 import 'package:analyzer/src/task/dart.dart'; 10 import 'package:analyzer/src/task/dart.dart';
(...skipping 4126 matching lines...) Expand 10 before | Expand all | Expand 10 after
4137 FieldElementImpl.forNode(Identifier name) : super.forNode(name); 4137 FieldElementImpl.forNode(Identifier name) : super.forNode(name);
4138 4138
4139 @override 4139 @override
4140 ClassElement get enclosingElement => super.enclosingElement as ClassElement; 4140 ClassElement get enclosingElement => super.enclosingElement as ClassElement;
4141 4141
4142 @override 4142 @override
4143 bool get isEnumConstant => 4143 bool get isEnumConstant =>
4144 enclosingElement != null ? enclosingElement.isEnum : false; 4144 enclosingElement != null ? enclosingElement.isEnum : false;
4145 4145
4146 @override 4146 @override
4147 bool get isStatic => hasModifier(Modifier.STATIC);
4148
4149 @override
4150 ElementKind get kind => ElementKind.FIELD; 4147 ElementKind get kind => ElementKind.FIELD;
4151 4148
4152 /** 4149 /**
4153 * Set whether this field is static. 4150 * Set whether this field is static.
4154 */ 4151 */
4155 void set static(bool isStatic) { 4152 void set static(bool isStatic) {
4156 setModifier(Modifier.STATIC, isStatic); 4153 setModifier(Modifier.STATIC, isStatic);
4157 } 4154 }
4158 4155
4159 @override 4156 @override
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
4254 ClassElement get enclosingElement => baseElement.enclosingElement; 4251 ClassElement get enclosingElement => baseElement.enclosingElement;
4255 4252
4256 @override 4253 @override
4257 PropertyAccessorElement get getter => 4254 PropertyAccessorElement get getter =>
4258 PropertyAccessorMember.from(baseElement.getter, definingType); 4255 PropertyAccessorMember.from(baseElement.getter, definingType);
4259 4256
4260 @override 4257 @override
4261 bool get isEnumConstant => baseElement.isEnumConstant; 4258 bool get isEnumConstant => baseElement.isEnumConstant;
4262 4259
4263 @override 4260 @override
4264 bool get isStatic => baseElement.isStatic;
4265
4266 @override
4267 DartType get propagatedType => substituteFor(baseElement.propagatedType); 4261 DartType get propagatedType => substituteFor(baseElement.propagatedType);
4268 4262
4269 @override 4263 @override
4270 PropertyAccessorElement get setter => 4264 PropertyAccessorElement get setter =>
4271 PropertyAccessorMember.from(baseElement.setter, definingType); 4265 PropertyAccessorMember.from(baseElement.setter, definingType);
4272 4266
4273 @override 4267 @override
4274 accept(ElementVisitor visitor) => visitor.visitFieldElement(this); 4268 accept(ElementVisitor visitor) => visitor.visitFieldElement(this);
4275 4269
4276 @override 4270 @override
(...skipping 5248 matching lines...) Expand 10 before | Expand all | Expand 10 after
9525 const <PropertyInducingElement>[]; 9519 const <PropertyInducingElement>[];
9526 9520
9527 /** 9521 /**
9528 * Return the getter associated with this variable. If this variable was 9522 * Return the getter associated with this variable. If this variable was
9529 * explicitly defined (is not synthetic) then the getter associated with it 9523 * explicitly defined (is not synthetic) then the getter associated with it
9530 * will be synthetic. 9524 * will be synthetic.
9531 */ 9525 */
9532 PropertyAccessorElement get getter; 9526 PropertyAccessorElement get getter;
9533 9527
9534 /** 9528 /**
9535 * Return `true` if this element is a static element. A static element is an
9536 * element that is not associated with a particular instance, but rather with
9537 * an entire library or class.
9538 */
9539 bool get isStatic;
9540
9541 /**
9542 * Return the propagated type of this variable, or `null` if type propagation 9529 * Return the propagated type of this variable, or `null` if type propagation
9543 * has not been performed, for example because the variable is not final. 9530 * has not been performed, for example because the variable is not final.
9544 */ 9531 */
9545 DartType get propagatedType; 9532 DartType get propagatedType;
9546 9533
9547 /** 9534 /**
9548 * Return the setter associated with this variable, or `null` if the variable 9535 * Return the setter associated with this variable, or `null` if the variable
9549 * is effectively `final` and therefore does not have a setter associated with 9536 * is effectively `final` and therefore does not have a setter associated with
9550 * it. (This can happen either because the variable is explicitly defined as 9537 * it. (This can happen either because the variable is explicitly defined as
9551 * being `final` or because the variable is induced by an explicit getter that 9538 * being `final` or because the variable is induced by an explicit getter that
(...skipping 978 matching lines...) Expand 10 before | Expand all | Expand 10 after
10530 10517
10531 /** 10518 /**
10532 * Return `true` if this variable is potentially mutated somewhere in its 10519 * Return `true` if this variable is potentially mutated somewhere in its
10533 * scope. This information is only available for local variables (including 10520 * scope. This information is only available for local variables (including
10534 * parameters) and only after the compilation unit containing the variable has 10521 * parameters) and only after the compilation unit containing the variable has
10535 * been resolved. 10522 * been resolved.
10536 */ 10523 */
10537 bool get isPotentiallyMutatedInScope; 10524 bool get isPotentiallyMutatedInScope;
10538 10525
10539 /** 10526 /**
10527 * Return `true` if this element is a static variable, as per section 8 of the
10528 * Dart Language Specification:
10529 *
10530 * > A static variable is a variable that is not associated with a particular
10531 * > instance, but rather with an entire library or class. Static variables
10532 * > include library variables and class variables. Class variables are
10533 * > variables whose declaration is immediately nested inside a class
10534 * > declaration and includes the modifier static. A library variable is
10535 * > implicitly static.
10536 */
10537 bool get isStatic;
10538
10539 /**
10540 * Return the declared type of this variable, or `null` if the variable did 10540 * Return the declared type of this variable, or `null` if the variable did
10541 * not have a declared type (such as if it was declared using the keyword 10541 * not have a declared type (such as if it was declared using the keyword
10542 * 'var'). 10542 * 'var').
10543 */ 10543 */
10544 DartType get type; 10544 DartType get type;
10545 } 10545 }
10546 10546
10547 /** 10547 /**
10548 * A concrete implementation of a [VariableElement]. 10548 * A concrete implementation of a [VariableElement].
10549 */ 10549 */
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
10638 @override 10638 @override
10639 bool get isFinal => hasModifier(Modifier.FINAL); 10639 bool get isFinal => hasModifier(Modifier.FINAL);
10640 10640
10641 @override 10641 @override
10642 bool get isPotentiallyMutatedInClosure => false; 10642 bool get isPotentiallyMutatedInClosure => false;
10643 10643
10644 @override 10644 @override
10645 bool get isPotentiallyMutatedInScope => false; 10645 bool get isPotentiallyMutatedInScope => false;
10646 10646
10647 @override 10647 @override
10648 bool get isStatic => hasModifier(Modifier.STATIC);
10649
10650 @override
10648 void appendTo(StringBuffer buffer) { 10651 void appendTo(StringBuffer buffer) {
10649 buffer.write(type); 10652 buffer.write(type);
10650 buffer.write(" "); 10653 buffer.write(" ");
10651 buffer.write(displayName); 10654 buffer.write(displayName);
10652 } 10655 }
10653 10656
10654 @override 10657 @override
10655 void visitChildren(ElementVisitor visitor) { 10658 void visitChildren(ElementVisitor visitor) {
10656 super.visitChildren(visitor); 10659 super.visitChildren(visitor);
10657 safelyVisitChild(_initializer, visitor); 10660 safelyVisitChild(_initializer, visitor);
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
10694 10697
10695 @override 10698 @override
10696 bool get isPotentiallyMutatedInClosure => 10699 bool get isPotentiallyMutatedInClosure =>
10697 baseElement.isPotentiallyMutatedInClosure; 10700 baseElement.isPotentiallyMutatedInClosure;
10698 10701
10699 @override 10702 @override
10700 bool get isPotentiallyMutatedInScope => 10703 bool get isPotentiallyMutatedInScope =>
10701 baseElement.isPotentiallyMutatedInScope; 10704 baseElement.isPotentiallyMutatedInScope;
10702 10705
10703 @override 10706 @override
10707 bool get isStatic => baseElement.isStatic;
10708
10709 @override
10704 DartType get type => substituteFor(baseElement.type); 10710 DartType get type => substituteFor(baseElement.type);
10705 10711
10706 @override 10712 @override
10707 void visitChildren(ElementVisitor visitor) { 10713 void visitChildren(ElementVisitor visitor) {
10708 // TODO(brianwilkerson) We need to finish implementing the accessors used 10714 // TODO(brianwilkerson) We need to finish implementing the accessors used
10709 // below so that we can safely invoke them. 10715 // below so that we can safely invoke them.
10710 super.visitChildren(visitor); 10716 super.visitChildren(visitor);
10711 safelyVisitChild(baseElement.initializer, visitor); 10717 safelyVisitChild(baseElement.initializer, visitor);
10712 } 10718 }
10713 } 10719 }
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
10783 10789
10784 @override 10790 @override
10785 void visitElement(Element element) { 10791 void visitElement(Element element) {
10786 int offset = element.nameOffset; 10792 int offset = element.nameOffset;
10787 if (offset != -1) { 10793 if (offset != -1) {
10788 map[offset] = element; 10794 map[offset] = element;
10789 } 10795 }
10790 super.visitElement(element); 10796 super.visitElement(element);
10791 } 10797 }
10792 } 10798 }
OLDNEW
« no previous file with comments | « no previous file | pkg/analyzer/lib/src/generated/element_handle.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698