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

Unified 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | pkg/analyzer/lib/src/generated/element_handle.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer/lib/src/generated/element.dart
diff --git a/pkg/analyzer/lib/src/generated/element.dart b/pkg/analyzer/lib/src/generated/element.dart
index 861b1ea2f5e6e2cf7c48623ad2283c9c5d5a0981..d8fac41e10efe1ba72fbf0e3bff2b549fa9aaf46 100644
--- a/pkg/analyzer/lib/src/generated/element.dart
+++ b/pkg/analyzer/lib/src/generated/element.dart
@@ -2062,6 +2062,10 @@ class DefaultParameterElementImpl extends ParameterElementImpl {
void set evaluationResult(EvaluationResultImpl result) {
this._result = result;
}
+
+ @override
+ DefaultFormalParameter get node =>
+ getNodeMatching((node) => node is DefaultFormalParameter);
}
/**
@@ -3942,6 +3946,9 @@ class FieldMember extends VariableMember implements FieldElement {
bool get isStatic => baseElement.isStatic;
@override
+ VariableDeclaration get node => baseElement.node;
+
+ @override
DartType get propagatedType => substituteFor(baseElement.propagatedType);
@override
@@ -7296,7 +7303,17 @@ abstract class LocalElement implements Element {
/**
* A local variable.
*/
-abstract class LocalVariableElement implements LocalElement, VariableElement {}
+abstract class LocalVariableElement implements LocalElement, VariableElement {
+ /**
+ * Return the resolved [VariableDeclaration] node that declares this
+ * [LocalVariableElement].
+ *
+ * This method is expensive, because resolved AST might be evicted from cache,
+ * so parsing and resolving will be performed.
+ */
+ @override
+ VariableDeclaration get node;
+}
/**
* A concrete implementation of a [LocalVariableElement].
@@ -7351,6 +7368,10 @@ class LocalVariableElementImpl extends VariableElementImpl
ElementKind get kind => ElementKind.LOCAL_VARIABLE;
@override
+ VariableDeclaration get node =>
+ getNodeMatching((node) => node is VariableDeclaration);
+
+ @override
SourceRange get visibleRange {
if (_visibleRangeLength < 0) {
return null;
@@ -8155,6 +8176,9 @@ abstract class ParameterElement implements LocalElement, VariableElement {
*/
bool get isInitializingFormal;
+ @override
+ FormalParameter get node;
+
/**
* Return the kind of this parameter.
*/
@@ -8242,6 +8266,10 @@ class ParameterElementImpl extends VariableElementImpl
ElementKind get kind => ElementKind.PARAMETER;
@override
+ FormalParameter get node =>
+ getNodeMatching((node) => node is FormalParameter);
+
+ @override
List<ParameterElement> get parameters => _parameters;
/**
@@ -8388,6 +8416,9 @@ class ParameterMember extends VariableMember implements ParameterElement {
bool get isInitializingFormal => baseElement.isInitializingFormal;
@override
+ FormalParameter get node => baseElement.node;
+
+ @override
ParameterKind get parameterKind => baseElement.parameterKind;
@override
@@ -9287,7 +9318,10 @@ class SimpleElementVisitor<R> implements ElementVisitor<R> {
/**
* A top-level variable.
*/
-abstract class TopLevelVariableElement implements PropertyInducingElement {}
+abstract class TopLevelVariableElement implements PropertyInducingElement {
+ @override
+ VariableDeclaration get node;
+}
/**
* A concrete implementation of a [TopLevelVariableElement].
@@ -9319,6 +9353,10 @@ class TopLevelVariableElementImpl extends PropertyInducingElementImpl
ElementKind get kind => ElementKind.TOP_LEVEL_VARIABLE;
@override
+ VariableDeclaration get node =>
+ getNodeMatching((node) => node is VariableDeclaration);
+
+ @override
accept(ElementVisitor visitor) => visitor.visitTopLevelVariableElement(this);
}
@@ -9889,16 +9927,6 @@ abstract class VariableElement implements Element {
bool get isPotentiallyMutatedInScope;
/**
- * Return the resolved [VariableDeclaration] node that declares this
- * [VariableElement].
- *
- * This method is expensive, because resolved AST might be evicted from cache,
- * so parsing and resolving will be performed.
- */
- @override
- VariableDeclaration get node;
-
- /**
* Return the declared type of this variable, or `null` if the variable did
* not have a declared type (such as if it was declared using the keyword
* 'var').
@@ -9996,10 +10024,6 @@ abstract class VariableElementImpl extends ElementImpl
bool get isPotentiallyMutatedInScope => false;
@override
- VariableDeclaration get node =>
- getNodeMatching((node) => node is VariableDeclaration);
-
- @override
void appendTo(StringBuffer buffer) {
buffer.write(type);
buffer.write(" ");
@@ -10053,9 +10077,6 @@ abstract class VariableMember extends Member implements VariableElement {
baseElement.isPotentiallyMutatedInScope;
@override
- VariableDeclaration get node => baseElement.node;
-
- @override
DartType get type => substituteFor(baseElement.type);
@override
« 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