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

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

Issue 1084643002: Issue 23181. Fix for ParameterElement.node. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 8 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 | Annotate | Revision Log
« 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 // This code was auto-generated, is not intended to be edited, and is subject to 5 // This code was auto-generated, is not intended to be edited, and is subject to
6 // significant change. Please see the README file for more information. 6 // significant change. Please see the README file for more information.
7 7
8 library engine.element; 8 library engine.element;
9 9
10 import 'dart:collection'; 10 import 'dart:collection';
(...skipping 2044 matching lines...) Expand 10 before | Expand all | Expand 10 after
2055 */ 2055 */
2056 DefaultParameterElementImpl(Identifier name) : super.forNode(name); 2056 DefaultParameterElementImpl(Identifier name) : super.forNode(name);
2057 2057
2058 @override 2058 @override
2059 EvaluationResultImpl get evaluationResult => _result; 2059 EvaluationResultImpl get evaluationResult => _result;
2060 2060
2061 @override 2061 @override
2062 void set evaluationResult(EvaluationResultImpl result) { 2062 void set evaluationResult(EvaluationResultImpl result) {
2063 this._result = result; 2063 this._result = result;
2064 } 2064 }
2065
2066 @override
2067 DefaultFormalParameter get node =>
2068 getNodeMatching((node) => node is DefaultFormalParameter);
2065 } 2069 }
2066 2070
2067 /** 2071 /**
2068 * The synthetic element representing the declaration of the type `dynamic`. 2072 * The synthetic element representing the declaration of the type `dynamic`.
2069 */ 2073 */
2070 class DynamicElementImpl extends ElementImpl { 2074 class DynamicElementImpl extends ElementImpl {
2071 /** 2075 /**
2072 * Return the unique instance of this class. 2076 * Return the unique instance of this class.
2073 */ 2077 */
2074 static DynamicElementImpl get instance => 2078 static DynamicElementImpl get instance =>
(...skipping 1860 matching lines...) Expand 10 before | Expand all | Expand 10 after
3935 PropertyAccessorElement get getter => 3939 PropertyAccessorElement get getter =>
3936 PropertyAccessorMember.from(baseElement.getter, definingType); 3940 PropertyAccessorMember.from(baseElement.getter, definingType);
3937 3941
3938 @override 3942 @override
3939 bool get isEnumConstant => baseElement.isEnumConstant; 3943 bool get isEnumConstant => baseElement.isEnumConstant;
3940 3944
3941 @override 3945 @override
3942 bool get isStatic => baseElement.isStatic; 3946 bool get isStatic => baseElement.isStatic;
3943 3947
3944 @override 3948 @override
3949 VariableDeclaration get node => baseElement.node;
3950
3951 @override
3945 DartType get propagatedType => substituteFor(baseElement.propagatedType); 3952 DartType get propagatedType => substituteFor(baseElement.propagatedType);
3946 3953
3947 @override 3954 @override
3948 PropertyAccessorElement get setter => 3955 PropertyAccessorElement get setter =>
3949 PropertyAccessorMember.from(baseElement.setter, definingType); 3956 PropertyAccessorMember.from(baseElement.setter, definingType);
3950 3957
3951 @override 3958 @override
3952 accept(ElementVisitor visitor) => visitor.visitFieldElement(this); 3959 accept(ElementVisitor visitor) => visitor.visitFieldElement(this);
3953 3960
3954 @override 3961 @override
(...skipping 3334 matching lines...) Expand 10 before | Expand all | Expand 10 after
7289 * declaration. 7296 * declaration.
7290 * * For top-level functions, `null` will be returned because they are 7297 * * For top-level functions, `null` will be returned because they are
7291 * potentially visible in multiple sources. 7298 * potentially visible in multiple sources.
7292 */ 7299 */
7293 SourceRange get visibleRange; 7300 SourceRange get visibleRange;
7294 } 7301 }
7295 7302
7296 /** 7303 /**
7297 * A local variable. 7304 * A local variable.
7298 */ 7305 */
7299 abstract class LocalVariableElement implements LocalElement, VariableElement {} 7306 abstract class LocalVariableElement implements LocalElement, VariableElement {
7307 /**
7308 * Return the resolved [VariableDeclaration] node that declares this
7309 * [LocalVariableElement].
7310 *
7311 * This method is expensive, because resolved AST might be evicted from cache,
7312 * so parsing and resolving will be performed.
7313 */
7314 @override
7315 VariableDeclaration get node;
7316 }
7300 7317
7301 /** 7318 /**
7302 * A concrete implementation of a [LocalVariableElement]. 7319 * A concrete implementation of a [LocalVariableElement].
7303 */ 7320 */
7304 class LocalVariableElementImpl extends VariableElementImpl 7321 class LocalVariableElementImpl extends VariableElementImpl
7305 with PotentiallyConstVariableElement implements LocalVariableElement { 7322 with PotentiallyConstVariableElement implements LocalVariableElement {
7306 /** 7323 /**
7307 * An empty list of field elements. 7324 * An empty list of field elements.
7308 */ 7325 */
7309 static const List<LocalVariableElement> EMPTY_ARRAY = 7326 static const List<LocalVariableElement> EMPTY_ARRAY =
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
7344 hasModifier(Modifier.POTENTIALLY_MUTATED_IN_CONTEXT); 7361 hasModifier(Modifier.POTENTIALLY_MUTATED_IN_CONTEXT);
7345 7362
7346 @override 7363 @override
7347 bool get isPotentiallyMutatedInScope => 7364 bool get isPotentiallyMutatedInScope =>
7348 hasModifier(Modifier.POTENTIALLY_MUTATED_IN_SCOPE); 7365 hasModifier(Modifier.POTENTIALLY_MUTATED_IN_SCOPE);
7349 7366
7350 @override 7367 @override
7351 ElementKind get kind => ElementKind.LOCAL_VARIABLE; 7368 ElementKind get kind => ElementKind.LOCAL_VARIABLE;
7352 7369
7353 @override 7370 @override
7371 VariableDeclaration get node =>
7372 getNodeMatching((node) => node is VariableDeclaration);
7373
7374 @override
7354 SourceRange get visibleRange { 7375 SourceRange get visibleRange {
7355 if (_visibleRangeLength < 0) { 7376 if (_visibleRangeLength < 0) {
7356 return null; 7377 return null;
7357 } 7378 }
7358 return new SourceRange(_visibleRangeOffset, _visibleRangeLength); 7379 return new SourceRange(_visibleRangeOffset, _visibleRangeLength);
7359 } 7380 }
7360 7381
7361 @override 7382 @override
7362 accept(ElementVisitor visitor) => visitor.visitLocalVariableElement(this); 7383 accept(ElementVisitor visitor) => visitor.visitLocalVariableElement(this);
7363 7384
(...skipping 784 matching lines...) Expand 10 before | Expand all | Expand 10 after
8148 /** 8169 /**
8149 * Return the Dart code of the default value, or `null` if no default value. 8170 * Return the Dart code of the default value, or `null` if no default value.
8150 */ 8171 */
8151 String get defaultValueCode; 8172 String get defaultValueCode;
8152 8173
8153 /** 8174 /**
8154 * Return `true` if this parameter is an initializing formal parameter. 8175 * Return `true` if this parameter is an initializing formal parameter.
8155 */ 8176 */
8156 bool get isInitializingFormal; 8177 bool get isInitializingFormal;
8157 8178
8179 @override
8180 FormalParameter get node;
8181
8158 /** 8182 /**
8159 * Return the kind of this parameter. 8183 * Return the kind of this parameter.
8160 */ 8184 */
8161 ParameterKind get parameterKind; 8185 ParameterKind get parameterKind;
8162 8186
8163 /** 8187 /**
8164 * Return a list containing all of the parameters defined by this parameter. 8188 * Return a list containing all of the parameters defined by this parameter.
8165 * A parameter will only define other parameters if it is a function typed 8189 * A parameter will only define other parameters if it is a function typed
8166 * parameter. 8190 * parameter.
8167 */ 8191 */
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
8235 hasModifier(Modifier.POTENTIALLY_MUTATED_IN_CONTEXT); 8259 hasModifier(Modifier.POTENTIALLY_MUTATED_IN_CONTEXT);
8236 8260
8237 @override 8261 @override
8238 bool get isPotentiallyMutatedInScope => 8262 bool get isPotentiallyMutatedInScope =>
8239 hasModifier(Modifier.POTENTIALLY_MUTATED_IN_SCOPE); 8263 hasModifier(Modifier.POTENTIALLY_MUTATED_IN_SCOPE);
8240 8264
8241 @override 8265 @override
8242 ElementKind get kind => ElementKind.PARAMETER; 8266 ElementKind get kind => ElementKind.PARAMETER;
8243 8267
8244 @override 8268 @override
8269 FormalParameter get node =>
8270 getNodeMatching((node) => node is FormalParameter);
8271
8272 @override
8245 List<ParameterElement> get parameters => _parameters; 8273 List<ParameterElement> get parameters => _parameters;
8246 8274
8247 /** 8275 /**
8248 * Set the parameters defined by this executable element to the given 8276 * Set the parameters defined by this executable element to the given
8249 * [parameters]. 8277 * [parameters].
8250 */ 8278 */
8251 void set parameters(List<ParameterElement> parameters) { 8279 void set parameters(List<ParameterElement> parameters) {
8252 for (ParameterElement parameter in parameters) { 8280 for (ParameterElement parameter in parameters) {
8253 (parameter as ParameterElementImpl).enclosingElement = this; 8281 (parameter as ParameterElementImpl).enclosingElement = this;
8254 } 8282 }
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
8381 @override 8409 @override
8382 String get defaultValueCode => baseElement.defaultValueCode; 8410 String get defaultValueCode => baseElement.defaultValueCode;
8383 8411
8384 @override 8412 @override
8385 Element get enclosingElement => baseElement.enclosingElement; 8413 Element get enclosingElement => baseElement.enclosingElement;
8386 8414
8387 @override 8415 @override
8388 bool get isInitializingFormal => baseElement.isInitializingFormal; 8416 bool get isInitializingFormal => baseElement.isInitializingFormal;
8389 8417
8390 @override 8418 @override
8419 FormalParameter get node => baseElement.node;
8420
8421 @override
8391 ParameterKind get parameterKind => baseElement.parameterKind; 8422 ParameterKind get parameterKind => baseElement.parameterKind;
8392 8423
8393 @override 8424 @override
8394 List<ParameterElement> get parameters { 8425 List<ParameterElement> get parameters {
8395 List<ParameterElement> baseParameters = baseElement.parameters; 8426 List<ParameterElement> baseParameters = baseElement.parameters;
8396 int parameterCount = baseParameters.length; 8427 int parameterCount = baseParameters.length;
8397 if (parameterCount == 0) { 8428 if (parameterCount == 0) {
8398 return baseParameters; 8429 return baseParameters;
8399 } 8430 }
8400 List<ParameterElement> parameterizedParameters = 8431 List<ParameterElement> parameterizedParameters =
(...skipping 879 matching lines...) Expand 10 before | Expand all | Expand 10 after
9280 @override 9311 @override
9281 R visitTopLevelVariableElement(TopLevelVariableElement element) => null; 9312 R visitTopLevelVariableElement(TopLevelVariableElement element) => null;
9282 9313
9283 @override 9314 @override
9284 R visitTypeParameterElement(TypeParameterElement element) => null; 9315 R visitTypeParameterElement(TypeParameterElement element) => null;
9285 } 9316 }
9286 9317
9287 /** 9318 /**
9288 * A top-level variable. 9319 * A top-level variable.
9289 */ 9320 */
9290 abstract class TopLevelVariableElement implements PropertyInducingElement {} 9321 abstract class TopLevelVariableElement implements PropertyInducingElement {
9322 @override
9323 VariableDeclaration get node;
9324 }
9291 9325
9292 /** 9326 /**
9293 * A concrete implementation of a [TopLevelVariableElement]. 9327 * A concrete implementation of a [TopLevelVariableElement].
9294 */ 9328 */
9295 class TopLevelVariableElementImpl extends PropertyInducingElementImpl 9329 class TopLevelVariableElementImpl extends PropertyInducingElementImpl
9296 with PotentiallyConstVariableElement implements TopLevelVariableElement { 9330 with PotentiallyConstVariableElement implements TopLevelVariableElement {
9297 /** 9331 /**
9298 * An empty list of top-level variable elements. 9332 * An empty list of top-level variable elements.
9299 */ 9333 */
9300 static const List<TopLevelVariableElement> EMPTY_ARRAY = 9334 static const List<TopLevelVariableElement> EMPTY_ARRAY =
(...skipping 11 matching lines...) Expand all
9312 */ 9346 */
9313 TopLevelVariableElementImpl.forNode(Identifier name) : super.forNode(name); 9347 TopLevelVariableElementImpl.forNode(Identifier name) : super.forNode(name);
9314 9348
9315 @override 9349 @override
9316 bool get isStatic => true; 9350 bool get isStatic => true;
9317 9351
9318 @override 9352 @override
9319 ElementKind get kind => ElementKind.TOP_LEVEL_VARIABLE; 9353 ElementKind get kind => ElementKind.TOP_LEVEL_VARIABLE;
9320 9354
9321 @override 9355 @override
9356 VariableDeclaration get node =>
9357 getNodeMatching((node) => node is VariableDeclaration);
9358
9359 @override
9322 accept(ElementVisitor visitor) => visitor.visitTopLevelVariableElement(this); 9360 accept(ElementVisitor visitor) => visitor.visitTopLevelVariableElement(this);
9323 } 9361 }
9324 9362
9325 /** 9363 /**
9326 * The abstract class `TypeImpl` implements the behavior common to objects 9364 * The abstract class `TypeImpl` implements the behavior common to objects
9327 * representing the declared type of elements in the element model. 9365 * representing the declared type of elements in the element model.
9328 */ 9366 */
9329 abstract class TypeImpl implements DartType { 9367 abstract class TypeImpl implements DartType {
9330 /** 9368 /**
9331 * An empty list of types. 9369 * An empty list of types.
(...skipping 550 matching lines...) Expand 10 before | Expand all | Expand 10 after
9882 9920
9883 /** 9921 /**
9884 * Return `true` if this variable is potentially mutated somewhere in its 9922 * Return `true` if this variable is potentially mutated somewhere in its
9885 * scope. This information is only available for local variables (including 9923 * scope. This information is only available for local variables (including
9886 * parameters) and only after the compilation unit containing the variable has 9924 * parameters) and only after the compilation unit containing the variable has
9887 * been resolved. 9925 * been resolved.
9888 */ 9926 */
9889 bool get isPotentiallyMutatedInScope; 9927 bool get isPotentiallyMutatedInScope;
9890 9928
9891 /** 9929 /**
9892 * Return the resolved [VariableDeclaration] node that declares this
9893 * [VariableElement].
9894 *
9895 * This method is expensive, because resolved AST might be evicted from cache,
9896 * so parsing and resolving will be performed.
9897 */
9898 @override
9899 VariableDeclaration get node;
9900
9901 /**
9902 * Return the declared type of this variable, or `null` if the variable did 9930 * Return the declared type of this variable, or `null` if the variable did
9903 * not have a declared type (such as if it was declared using the keyword 9931 * not have a declared type (such as if it was declared using the keyword
9904 * 'var'). 9932 * 'var').
9905 */ 9933 */
9906 DartType get type; 9934 DartType get type;
9907 } 9935 }
9908 9936
9909 /** 9937 /**
9910 * A concrete implementation of a [VariableElement]. 9938 * A concrete implementation of a [VariableElement].
9911 */ 9939 */
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
9989 @override 10017 @override
9990 bool get isFinal => hasModifier(Modifier.FINAL); 10018 bool get isFinal => hasModifier(Modifier.FINAL);
9991 10019
9992 @override 10020 @override
9993 bool get isPotentiallyMutatedInClosure => false; 10021 bool get isPotentiallyMutatedInClosure => false;
9994 10022
9995 @override 10023 @override
9996 bool get isPotentiallyMutatedInScope => false; 10024 bool get isPotentiallyMutatedInScope => false;
9997 10025
9998 @override 10026 @override
9999 VariableDeclaration get node =>
10000 getNodeMatching((node) => node is VariableDeclaration);
10001
10002 @override
10003 void appendTo(StringBuffer buffer) { 10027 void appendTo(StringBuffer buffer) {
10004 buffer.write(type); 10028 buffer.write(type);
10005 buffer.write(" "); 10029 buffer.write(" ");
10006 buffer.write(displayName); 10030 buffer.write(displayName);
10007 } 10031 }
10008 10032
10009 @override 10033 @override
10010 void visitChildren(ElementVisitor visitor) { 10034 void visitChildren(ElementVisitor visitor) {
10011 super.visitChildren(visitor); 10035 super.visitChildren(visitor);
10012 safelyVisitChild(_initializer, visitor); 10036 safelyVisitChild(_initializer, visitor);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
10046 10070
10047 @override 10071 @override
10048 bool get isPotentiallyMutatedInClosure => 10072 bool get isPotentiallyMutatedInClosure =>
10049 baseElement.isPotentiallyMutatedInClosure; 10073 baseElement.isPotentiallyMutatedInClosure;
10050 10074
10051 @override 10075 @override
10052 bool get isPotentiallyMutatedInScope => 10076 bool get isPotentiallyMutatedInScope =>
10053 baseElement.isPotentiallyMutatedInScope; 10077 baseElement.isPotentiallyMutatedInScope;
10054 10078
10055 @override 10079 @override
10056 VariableDeclaration get node => baseElement.node;
10057
10058 @override
10059 DartType get type => substituteFor(baseElement.type); 10080 DartType get type => substituteFor(baseElement.type);
10060 10081
10061 @override 10082 @override
10062 void visitChildren(ElementVisitor visitor) { 10083 void visitChildren(ElementVisitor visitor) {
10063 // TODO(brianwilkerson) We need to finish implementing the accessors used 10084 // TODO(brianwilkerson) We need to finish implementing the accessors used
10064 // below so that we can safely invoke them. 10085 // below so that we can safely invoke them.
10065 super.visitChildren(visitor); 10086 super.visitChildren(visitor);
10066 safelyVisitChild(baseElement.initializer, visitor); 10087 safelyVisitChild(baseElement.initializer, visitor);
10067 } 10088 }
10068 } 10089 }
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
10141 10162
10142 @override 10163 @override
10143 void visitElement(Element element) { 10164 void visitElement(Element element) {
10144 int offset = element.nameOffset; 10165 int offset = element.nameOffset;
10145 if (offset != -1) { 10166 if (offset != -1) {
10146 map[offset] = element; 10167 map[offset] = element;
10147 } 10168 }
10148 super.visitElement(element); 10169 super.visitElement(element);
10149 } 10170 }
10150 } 10171 }
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