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

Unified Diff: pkg/analyzer/lib/src/generated/ast.dart

Issue 1055413003: Introduce common superclass to fix ClassElement.node (issue 23120) (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.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer/lib/src/generated/ast.dart
diff --git a/pkg/analyzer/lib/src/generated/ast.dart b/pkg/analyzer/lib/src/generated/ast.dart
index 4bb900db81b67f88cc4cc015bf00405a512cfe03..14fa59a7ded2774a16ef6fbdba9a00019e8d01c2 100644
--- a/pkg/analyzer/lib/src/generated/ast.dart
+++ b/pkg/analyzer/lib/src/generated/ast.dart
@@ -3995,7 +3995,7 @@ class ChildEntities extends Object with IterableMixin implements Iterable {
* > [ImplementsClause]?
* > '{' [ClassMember]* '}'
*/
-class ClassDeclaration extends CompilationUnitMember {
+class ClassDeclaration extends NamedCompilationUnitMember {
/**
* The 'abstract' keyword, or `null` if the keyword was absent.
*/
@@ -4007,11 +4007,6 @@ class ClassDeclaration extends CompilationUnitMember {
Token classKeyword;
/**
- * The name of the class being declared.
- */
- SimpleIdentifier _name;
-
- /**
* The type parameters for the class, or `null` if the class does not have any
* type parameters.
*/
@@ -4071,8 +4066,7 @@ class ClassDeclaration extends CompilationUnitMember {
TypeParameterList typeParameters, ExtendsClause extendsClause,
WithClause withClause, ImplementsClause implementsClause,
this.leftBracket, List<ClassMember> members, this.rightBracket)
- : super(comment, metadata) {
- _name = _becomeParentOf(name);
+ : super(comment, metadata, name) {
_typeParameters = _becomeParentOf(typeParameters);
_extendsClause = _becomeParentOf(extendsClause);
_withClause = _becomeParentOf(withClause);
@@ -4146,18 +4140,6 @@ class ClassDeclaration extends CompilationUnitMember {
NodeList<ClassMember> get members => _members;
/**
- * Return the name of the class being declared.
- */
- SimpleIdentifier get name => _name;
-
- /**
- * Set the name of the class being declared to the given [identifier].
- */
- void set name(SimpleIdentifier identifier) {
- _name = _becomeParentOf(identifier);
- }
-
- /**
* Return the native clause for this class, or `null` if the class does not
* have a native clause.
*/
@@ -4295,11 +4277,6 @@ abstract class ClassMember extends Declaration {
*/
class ClassTypeAlias extends TypeAlias {
/**
- * The name of the class being declared.
- */
- SimpleIdentifier _name;
-
- /**
* The type parameters for the class, or `null` if the class does not have any
* type parameters.
*/
@@ -4344,8 +4321,7 @@ class ClassTypeAlias extends TypeAlias {
SimpleIdentifier name, TypeParameterList typeParameters, this.equals,
this.abstractKeyword, TypeName superclass, WithClause withClause,
ImplementsClause implementsClause, Token semicolon)
- : super(comment, metadata, keyword, semicolon) {
- _name = _becomeParentOf(name);
+ : super(comment, metadata, keyword, name, semicolon) {
_typeParameters = _becomeParentOf(typeParameters);
_superclass = _becomeParentOf(superclass);
_withClause = _becomeParentOf(withClause);
@@ -4387,18 +4363,6 @@ class ClassTypeAlias extends TypeAlias {
bool get isAbstract => abstractKeyword != null;
/**
- * Return the name of the class being declared.
- */
- SimpleIdentifier get name => _name;
-
- /**
- * Set the name of the class being declared to the given [identifier].
- */
- void set name(SimpleIdentifier name) {
- _name = _becomeParentOf(name);
- }
-
- /**
* Return the name of the superclass of the class being declared.
*/
TypeName get superclass => _superclass;
@@ -4843,7 +4807,8 @@ class CompilationUnit extends AstNode {
}
/**
- * A node that declares a name within the scope of a compilation unit.
+ * A node that declares one or more names within the scope of a compilation
+ * unit.
*
* > compilationUnitMember ::=
* > [ClassDeclaration]
@@ -5871,8 +5836,8 @@ class ContinueStatement extends Statement {
}
/**
- * A node that represents the declaration of a name. Each declared name is
- * visible within a name scope.
+ * A node that represents the declaration of one or more names. Each declared
+ * name is visible within a name scope.
*/
abstract class Declaration extends AnnotatedNode {
/**
@@ -6600,18 +6565,13 @@ class EnumConstantDeclaration extends Declaration {
* > enumType ::=
* > metadata 'enum' [SimpleIdentifier] '{' [SimpleIdentifier] (',' [SimpleIdentifier])* (',')? '}'
*/
-class EnumDeclaration extends CompilationUnitMember {
+class EnumDeclaration extends NamedCompilationUnitMember {
/**
* The 'enum' keyword.
*/
Token enumKeyword;
/**
- * The name of the enumeration.
- */
- SimpleIdentifier _name;
-
- /**
* The left curly bracket.
*/
Token leftBracket;
@@ -6635,8 +6595,7 @@ class EnumDeclaration extends CompilationUnitMember {
EnumDeclaration(Comment comment, List<Annotation> metadata, this.enumKeyword,
SimpleIdentifier name, this.leftBracket,
List<EnumConstantDeclaration> constants, this.rightBracket)
- : super(comment, metadata) {
- _name = _becomeParentOf(name);
+ : super(comment, metadata, name) {
_constants = new NodeList<EnumConstantDeclaration>(this, constants);
}
@@ -6679,18 +6638,6 @@ class EnumDeclaration extends CompilationUnitMember {
enumKeyword = token;
}
- /**
- * Return the name of the enumeration.
- */
- SimpleIdentifier get name => _name;
-
- /**
- * Set the name of the enumeration to the given [name].
- */
- void set name(SimpleIdentifier name) {
- _name = _becomeParentOf(name);
- }
-
@override
accept(AstVisitor visitor) => visitor.visitEnumDeclaration(this);
@@ -7906,7 +7853,7 @@ abstract class FunctionBody extends AstNode {
* > functionSignature ::=
* > [Type]? ('get' | 'set')? [SimpleIdentifier] [FormalParameterList]
*/
-class FunctionDeclaration extends CompilationUnitMember {
+class FunctionDeclaration extends NamedCompilationUnitMember {
/**
* The token representing the 'external' keyword, or `null` if this is not an
* external function.
@@ -7925,11 +7872,6 @@ class FunctionDeclaration extends CompilationUnitMember {
Token propertyKeyword;
/**
- * The name of the function, or `null` if the function is not named.
- */
- SimpleIdentifier _name;
-
- /**
* The function expression being wrapped.
*/
FunctionExpression _functionExpression;
@@ -7945,9 +7887,8 @@ class FunctionDeclaration extends CompilationUnitMember {
FunctionDeclaration(Comment comment, List<Annotation> metadata,
this.externalKeyword, TypeName returnType, this.propertyKeyword,
SimpleIdentifier name, FunctionExpression functionExpression)
- : super(comment, metadata) {
+ : super(comment, metadata, name) {
_returnType = _becomeParentOf(returnType);
- _name = _becomeParentOf(name);
_functionExpression = _becomeParentOf(functionExpression);
}
@@ -8006,18 +7947,6 @@ class FunctionDeclaration extends CompilationUnitMember {
(propertyKeyword as KeywordToken).keyword == Keyword.SET;
/**
- * Return the name of the function, or `null` if the function is not named.
- */
- SimpleIdentifier get name => _name;
-
- /**
- * Set the name of the function to the given [identifier].
- */
- void set name(SimpleIdentifier identifier) {
- _name = _becomeParentOf(identifier);
- }
-
- /**
* Return the return type of the function, or `null` if no return type was
* declared.
*/
@@ -8310,11 +8239,6 @@ class FunctionTypeAlias extends TypeAlias {
TypeName _returnType;
/**
- * The name of the function type being declared.
- */
- SimpleIdentifier _name;
-
- /**
* The type parameters for the function type, or `null` if the function type
* does not have any type parameters.
*/
@@ -8336,9 +8260,8 @@ class FunctionTypeAlias extends TypeAlias {
TypeName returnType, SimpleIdentifier name,
TypeParameterList typeParameters, FormalParameterList parameters,
Token semicolon)
- : super(comment, metadata, keyword, semicolon) {
+ : super(comment, metadata, keyword, name, semicolon) {
_returnType = _becomeParentOf(returnType);
- _name = _becomeParentOf(name);
_typeParameters = _becomeParentOf(typeParameters);
_parameters = _becomeParentOf(parameters);
}
@@ -8357,18 +8280,6 @@ class FunctionTypeAlias extends TypeAlias {
_name != null ? (_name.staticElement as FunctionTypeAliasElement) : null;
/**
- * Return the name of the function type being declared.
- */
- SimpleIdentifier get name => _name;
-
- /**
- * Set the name of the function type being declared to the given [name].
- */
- void set name(SimpleIdentifier name) {
- _name = _becomeParentOf(name);
- }
-
- /**
* Return the parameters associated with the function type.
*/
FormalParameterList get parameters => _parameters;
@@ -8580,7 +8491,7 @@ class GeneralizingAstVisitor<R> implements AstVisitor<R> {
@override
R visitClassDeclaration(ClassDeclaration node) =>
- visitCompilationUnitMember(node);
+ visitNamedCompilationUnitMember(node);
R visitClassMember(ClassMember node) => visitDeclaration(node);
@@ -8650,7 +8561,7 @@ class GeneralizingAstVisitor<R> implements AstVisitor<R> {
@override
R visitEnumDeclaration(EnumDeclaration node) =>
- visitCompilationUnitMember(node);
+ visitNamedCompilationUnitMember(node);
@override
R visitExportDirective(ExportDirective node) => visitNamespaceDirective(node);
@@ -8689,7 +8600,7 @@ class GeneralizingAstVisitor<R> implements AstVisitor<R> {
@override
R visitFunctionDeclaration(FunctionDeclaration node) =>
- visitCompilationUnitMember(node);
+ visitNamedCompilationUnitMember(node);
@override
R visitFunctionDeclarationStatement(FunctionDeclarationStatement node) =>
@@ -8775,6 +8686,9 @@ class GeneralizingAstVisitor<R> implements AstVisitor<R> {
@override
R visitMethodInvocation(MethodInvocation node) => visitExpression(node);
+ R visitNamedCompilationUnitMember(NamedCompilationUnitMember node) =>
+ visitCompilationUnitMember(node);
+
@override
R visitNamedExpression(NamedExpression node) => visitExpression(node);
@@ -8893,7 +8807,7 @@ class GeneralizingAstVisitor<R> implements AstVisitor<R> {
@override
R visitTryStatement(TryStatement node) => visitStatement(node);
- R visitTypeAlias(TypeAlias node) => visitCompilationUnitMember(node);
+ R visitTypeAlias(TypeAlias node) => visitNamedCompilationUnitMember(node);
@override
R visitTypeArgumentList(TypeArgumentList node) => visitNode(node);
@@ -11924,6 +11838,39 @@ class MethodInvocation extends Expression {
}
/**
+ * A node that declares a single name within the scope of a compilation unit.
+ */
+abstract class NamedCompilationUnitMember extends CompilationUnitMember {
+ /**
+ * The name of the member being declared.
+ */
+ SimpleIdentifier _name;
+
+ /**
+ * Initialize a newly created compilation unit member with the given [name].
+ * Either or both of the [comment] and [metadata] can be `null` if the member
+ * does not have the corresponding attribute.
+ */
+ NamedCompilationUnitMember(
+ Comment comment, List<Annotation> metadata, SimpleIdentifier name)
+ : super(comment, metadata) {
+ _name = _becomeParentOf(name);
+ }
+
+ /**
+ * Return the name of the member being declared.
+ */
+ SimpleIdentifier get name => _name;
+
+ /**
+ * Set the name of the member being declared to the given [identifier].
+ */
+ void set name(SimpleIdentifier identifier) {
+ _name = _becomeParentOf(identifier);
+ }
+}
+
+/**
* An expression that has a name associated with it. They are used in method
* invocations when there are named parameters.
*
@@ -18728,7 +18675,7 @@ class TryStatement extends Statement {
* > classTypeAlias
* > | functionTypeAlias
*/
-abstract class TypeAlias extends CompilationUnitMember {
+abstract class TypeAlias extends NamedCompilationUnitMember {
/**
* The token representing the 'typedef' keyword.
*/
@@ -18745,8 +18692,8 @@ abstract class TypeAlias extends CompilationUnitMember {
* attribute.
*/
TypeAlias(Comment comment, List<Annotation> metadata, this.typedefKeyword,
- this.semicolon)
- : super(comment, metadata);
+ SimpleIdentifier name, this.semicolon)
+ : super(comment, metadata, name);
@override
Token get endToken => semicolon;
« no previous file with comments | « no previous file | pkg/analyzer/lib/src/generated/element.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698