Use AstNodeImpl for a few NodeList(s).
Change-Id: I2a078c35458ffc509e93108bd189aa29de7a6b7f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/262822
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analyzer/lib/src/clients/dart_style/rewrite_cascade.dart b/pkg/analyzer/lib/src/clients/dart_style/rewrite_cascade.dart
index 471a629..adbaeae 100644
--- a/pkg/analyzer/lib/src/clients/dart_style/rewrite_cascade.dart
+++ b/pkg/analyzer/lib/src/clients/dart_style/rewrite_cascade.dart
@@ -13,6 +13,7 @@
required ExpressionStatement expressionStatement,
required CascadeExpression cascadeExpression,
}) {
+ cascadeExpression as CascadeExpressionImpl;
assert(cascadeExpression.cascadeSections.length == 1);
var newTarget = astFactory.parenthesizedExpression(
diff --git a/pkg/analyzer/lib/src/dart/ast/ast.dart b/pkg/analyzer/lib/src/dart/ast/ast.dart
index 6f97840..f9529e8 100644
--- a/pkg/analyzer/lib/src/dart/ast/ast.dart
+++ b/pkg/analyzer/lib/src/dart/ast/ast.dart
@@ -36,12 +36,12 @@
/// [StringLiteral] [StringLiteral]+
class AdjacentStringsImpl extends StringLiteralImpl implements AdjacentStrings {
/// The strings that are implicitly concatenated.
- final NodeListImpl<StringLiteral> _strings = NodeListImpl._();
+ final NodeListImpl<StringLiteralImpl> _strings = NodeListImpl._();
/// Initialize a newly created list of adjacent strings. To be syntactically
/// valid, the list of [strings] must contain at least two elements.
AdjacentStringsImpl({
- required List<StringLiteral> strings,
+ required List<StringLiteralImpl> strings,
}) {
_strings._initialize(this, strings);
}
@@ -53,7 +53,7 @@
Token get endToken => _strings.endToken!;
@override
- NodeListImpl<StringLiteral> get strings => _strings;
+ NodeListImpl<StringLiteralImpl> get strings => _strings;
@override
ChildEntities get _childEntities {
@@ -77,8 +77,7 @@
void _appendStringValue(StringBuffer buffer) {
int length = strings.length;
for (int i = 0; i < length; i++) {
- var stringLiteral = strings[i] as StringLiteralImpl;
- stringLiteral._appendStringValue(buffer);
+ strings[i]._appendStringValue(buffer);
}
}
}
@@ -342,7 +341,7 @@
Token leftParenthesis;
/// The expressions producing the values of the arguments.
- final NodeListImpl<Expression> _arguments = NodeListImpl._();
+ final NodeListImpl<ExpressionImpl> _arguments = NodeListImpl._();
/// The right parenthesis.
@override
@@ -360,14 +359,14 @@
/// be `null` if there are no arguments.
ArgumentListImpl({
required this.leftParenthesis,
- required List<Expression> arguments,
+ required List<ExpressionImpl> arguments,
required this.rightParenthesis,
}) {
_arguments._initialize(this, arguments);
}
@override
- NodeListImpl<Expression> get arguments => _arguments;
+ NodeListImpl<ExpressionImpl> get arguments => _arguments;
@override
Token get beginToken => leftParenthesis;
@@ -1227,7 +1226,7 @@
Token leftBracket;
/// The statements contained in the block.
- final NodeListImpl<Statement> _statements = NodeListImpl._();
+ final NodeListImpl<StatementImpl> _statements = NodeListImpl._();
/// The right curly bracket.
@override
@@ -1236,7 +1235,7 @@
/// Initialize a newly created block of code.
BlockImpl({
required this.leftBracket,
- required List<Statement> statements,
+ required List<StatementImpl> statements,
required this.rightBracket,
}) {
_statements._initialize(this, statements);
@@ -1249,7 +1248,7 @@
Token get endToken => rightBracket;
@override
- NodeListImpl<Statement> get statements => _statements;
+ NodeListImpl<StatementImpl> get statements => _statements;
@override
ChildEntities get _childEntities => ChildEntities()
@@ -1397,13 +1396,13 @@
ExpressionImpl _target;
/// The cascade sections sharing the common target.
- final NodeListImpl<Expression> _cascadeSections = NodeListImpl._();
+ final NodeListImpl<ExpressionImpl> _cascadeSections = NodeListImpl._();
/// Initialize a newly created cascade expression. The list of
/// [cascadeSections] must contain at least one element.
CascadeExpressionImpl({
required ExpressionImpl target,
- required List<Expression> cascadeSections,
+ required List<ExpressionImpl> cascadeSections,
}) : _target = target {
_becomeParentOf(_target);
_cascadeSections._initialize(this, cascadeSections);
@@ -1413,7 +1412,7 @@
Token get beginToken => _target.beginToken;
@override
- NodeListImpl<Expression> get cascadeSections => _cascadeSections;
+ NodeListImpl<ExpressionImpl> get cascadeSections => _cascadeSections;
@override
Token get endToken => _cascadeSections.endToken!;
@@ -1875,7 +1874,7 @@
Token leftBracket;
/// The members defined by the class or mixin.
- final NodeListImpl<ClassMember> _members = NodeListImpl._();
+ final NodeListImpl<ClassMemberImpl> _members = NodeListImpl._();
/// The right curly bracket.
@override
@@ -1903,7 +1902,7 @@
required ImplementsClauseImpl? implementsClause,
required NativeClauseImpl? nativeClause,
required this.leftBracket,
- required List<ClassMember> members,
+ required List<ClassMemberImpl> members,
required this.rightBracket,
}) : _typeParameters = typeParameters,
_extendsClause = extendsClause,
@@ -1946,7 +1945,7 @@
}
@override
- NodeListImpl<ClassMember> get members => _members;
+ NodeListImpl<ClassMemberImpl> get members => _members;
@override
NativeClauseImpl? get nativeClause => _nativeClause;
diff --git a/pkg/analyzer/lib/src/dart/ast/to_source_visitor.dart b/pkg/analyzer/lib/src/dart/ast/to_source_visitor.dart
index 9cee45b..548db30 100644
--- a/pkg/analyzer/lib/src/dart/ast/to_source_visitor.dart
+++ b/pkg/analyzer/lib/src/dart/ast/to_source_visitor.dart
@@ -186,9 +186,9 @@
@override
void visitClassDeclaration(covariant ClassDeclarationImpl node) {
_visitNodeList(node.metadata, separator: ' ', suffix: ' ');
+ _visitToken(node.augmentKeyword, suffix: ' ');
_visitToken(node.abstractKeyword, suffix: ' ');
_visitToken(node.macroKeyword, suffix: ' ');
- _visitToken(node.augmentKeyword, suffix: ' ');
sink.write('class ');
_visitToken(node.name);
_visitNode(node.typeParameters);
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart
index b7ca741..9a2766a 100644
--- a/pkg/analyzer/lib/src/dart/element/element.dart
+++ b/pkg/analyzer/lib/src/dart/element/element.dart
@@ -857,7 +857,7 @@
superclassConstructor.isConst && !hasMixinWithInstanceVariables;
List<ParameterElement> superParameters = superclassConstructor.parameters;
int count = superParameters.length;
- var argumentsForSuperInvocation = <Expression>[];
+ var argumentsForSuperInvocation = <ExpressionImpl>[];
if (count > 0) {
var implicitParameters = <ParameterElement>[];
for (int i = 0; i < count; i++) {
diff --git a/pkg/analyzer/lib/src/dart/resolver/invocation_inferrer.dart b/pkg/analyzer/lib/src/dart/resolver/invocation_inferrer.dart
index 3d943e2..a1dabaa 100644
--- a/pkg/analyzer/lib/src/dart/resolver/invocation_inferrer.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/invocation_inferrer.dart
@@ -492,7 +492,7 @@
Expression value;
ParameterElement? parameter;
Object parameterKey;
- if (argument is NamedExpression) {
+ if (argument is NamedExpressionImpl) {
value = argument.expression;
parameterKey = argument.name.label.name;
} else {
diff --git a/pkg/analyzer/lib/src/fasta/ast_builder.dart b/pkg/analyzer/lib/src/fasta/ast_builder.dart
index c71aff1..6f4edef 100644
--- a/pkg/analyzer/lib/src/fasta/ast_builder.dart
+++ b/pkg/analyzer/lib/src/fasta/ast_builder.dart
@@ -201,7 +201,7 @@
push(
CascadeExpressionImpl(
target: expression,
- cascadeSections: <Expression>[],
+ cascadeSections: <ExpressionImpl>[],
),
);
}
@@ -656,7 +656,7 @@
assert(optional(')', rightParenthesis));
debugEvent("Arguments");
- var expressions = popTypedList2<Expression>(count);
+ var expressions = popTypedList2<ExpressionImpl>(count);
final arguments = ArgumentListImpl(
leftParenthesis: leftParenthesis,
arguments: expressions,
@@ -707,7 +707,7 @@
case Assert.Expression:
// The parser has already reported an error indicating that assert
// cannot be used in an expression. Insert a placeholder.
- List<Expression> arguments = <Expression>[condition];
+ final arguments = <ExpressionImpl>[condition];
if (message != null) {
arguments.add(message);
}
@@ -821,7 +821,7 @@
assert(optional('}', rightBracket));
debugEvent("Block");
- var statements = popTypedList2<Statement>(count);
+ var statements = popTypedList2<StatementImpl>(count);
push(
BlockImpl(
leftBracket: leftBracket,
@@ -837,7 +837,7 @@
assert(optional('}', rightBracket));
debugEvent("BlockFunctionBody");
- var statements = popTypedList2<Statement>(count);
+ var statements = popTypedList2<StatementImpl>(count);
final block = BlockImpl(
leftBracket: leftBracket,
statements: statements,
@@ -870,13 +870,13 @@
void endCascade() {
debugEvent("Cascade");
- var expression = pop() as Expression;
+ var expression = pop() as ExpressionImpl;
var cascade = pop() as CascadeExpressionImpl;
pop(); // Token.
push(
CascadeExpressionImpl(
target: cascade.target,
- cascadeSections: <Expression>[
+ cascadeSections: <ExpressionImpl>[
...cascade.cascadeSections,
expression,
],
@@ -950,7 +950,7 @@
handleRecoverableError(
messageConstConstructorWithBody, bodyToken, bodyToken);
}
- ConstructorDeclaration constructor = ConstructorDeclarationImpl(
+ var constructor = ConstructorDeclarationImpl(
comment: comment,
metadata: metadata,
externalKeyword: modifiers?.externalKeyword,
@@ -4764,7 +4764,7 @@
void handleStringJuxtaposition(Token startToken, int literalCount) {
debugEvent("StringJuxtaposition");
- var strings = popTypedList2<StringLiteral>(literalCount);
+ var strings = popTypedList2<StringLiteralImpl>(literalCount);
push(AdjacentStringsImpl(strings: strings));
}
@@ -5210,7 +5210,7 @@
final TypeParameterListImpl? typeParameters;
Token leftBracket;
- final List<ClassMember> members = [];
+ final List<ClassMemberImpl> members = [];
Token rightBracket;
_ClassLikeDeclarationBuilder({
diff --git a/pkg/analyzer/lib/src/generated/testing/ast_test_factory.dart b/pkg/analyzer/lib/src/generated/testing/ast_test_factory.dart
index 4764faf..bb801ef 100644
--- a/pkg/analyzer/lib/src/generated/testing/ast_test_factory.dart
+++ b/pkg/analyzer/lib/src/generated/testing/ast_test_factory.dart
@@ -24,14 +24,6 @@
/// rather than 'integerLiteral'.
@internal
class AstTestFactory {
- static ArgumentListImpl argumentList(
- [List<Expression> arguments = const []]) =>
- ArgumentListImpl(
- leftParenthesis: TokenFactory.tokenFromType(TokenType.OPEN_PAREN),
- arguments: arguments,
- rightParenthesis: TokenFactory.tokenFromType(TokenType.CLOSE_PAREN),
- );
-
static AssignmentExpressionImpl assignmentExpression(Expression leftHandSide,
TokenType operator, Expression rightHandSide) =>
AssignmentExpressionImpl(
@@ -40,37 +32,6 @@
rightHandSide: rightHandSide as ExpressionImpl,
);
- static ClassDeclarationImpl classDeclaration(
- Keyword? abstractKeyword,
- String name,
- TypeParameterList? typeParameters,
- ExtendsClause? extendsClause,
- WithClause? withClause,
- ImplementsClause? implementsClause,
- {List<ClassMember> members = const [],
- bool isMacro = false,
- bool isAugmentation = false}) =>
- ClassDeclarationImpl(
- comment: null,
- metadata: null,
- abstractKeyword: abstractKeyword == null
- ? null
- : TokenFactory.tokenFromKeyword(abstractKeyword),
- macroKeyword: isMacro ? TokenFactory.tokenFromString('macro') : null,
- augmentKeyword:
- isAugmentation ? TokenFactory.tokenFromString('augment') : null,
- classKeyword: TokenFactory.tokenFromKeyword(Keyword.CLASS),
- name: TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, name),
- typeParameters: typeParameters as TypeParameterListImpl?,
- extendsClause: extendsClause as ExtendsClauseImpl?,
- withClause: withClause as WithClauseImpl?,
- implementsClause: implementsClause as ImplementsClauseImpl?,
- nativeClause: null,
- leftBracket: TokenFactory.tokenFromType(TokenType.OPEN_CURLY_BRACKET),
- members: members,
- rightBracket:
- TokenFactory.tokenFromType(TokenType.CLOSE_CURLY_BRACKET));
-
static ConstructorDeclarationImpl constructorDeclaration(
Identifier returnType,
String? name,
@@ -223,14 +184,6 @@
[List<Combinator> combinators = const []]) =>
importDirective([], uri, false, prefix, combinators);
- static InstanceCreationExpressionImpl instanceCreationExpression(
- Keyword? keyword, ConstructorName name,
- [List<Expression> arguments = const []]) =>
- astFactory.instanceCreationExpression(
- keyword == null ? null : TokenFactory.tokenFromKeyword(keyword),
- name,
- argumentList(arguments));
-
static InterpolationExpressionImpl interpolationExpression(
Expression expression) =>
astFactory.interpolationExpression(
@@ -413,19 +366,6 @@
static SimpleStringLiteralImpl string2(String content) => astFactory
.simpleStringLiteral(TokenFactory.tokenFromString("'$content'"), content);
- static SuperConstructorInvocationImpl superConstructorInvocation(
- [List<Expression> arguments = const []]) =>
- superConstructorInvocation2(null, arguments);
-
- static SuperConstructorInvocationImpl superConstructorInvocation2(
- String? name,
- [List<Expression> arguments = const []]) =>
- astFactory.superConstructorInvocation(
- TokenFactory.tokenFromKeyword(Keyword.SUPER),
- name == null ? null : TokenFactory.tokenFromType(TokenType.PERIOD),
- name == null ? null : identifier3(name),
- argumentList(arguments));
-
static SuperExpressionImpl superExpression() =>
astFactory.superExpression(TokenFactory.tokenFromKeyword(Keyword.SUPER));
diff --git a/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart b/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
index 6403ea2..6a85f6d 100644
--- a/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
+++ b/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
@@ -191,7 +191,7 @@
}
AdjacentStrings _readAdjacentStrings() {
- var components = _readNodeList<StringLiteral>();
+ var components = _readNodeList<StringLiteralImpl>();
var node = AdjacentStringsImpl(strings: components);
_readExpressionResolution(node);
return node;
@@ -215,7 +215,7 @@
}
ArgumentList _readArgumentList() {
- var arguments = _readNodeList<Expression>();
+ var arguments = _readNodeList<ExpressionImpl>();
return ArgumentListImpl(
leftParenthesis: Tokens.openParenthesis(),
@@ -306,7 +306,7 @@
CascadeExpression _readCascadeExpression() {
var target = readNode() as ExpressionImpl;
- var sections = _readNodeList<Expression>();
+ var sections = _readNodeList<ExpressionImpl>();
var node = CascadeExpressionImpl(
target: target,
cascadeSections: sections,
diff --git a/pkg/analyzer/test/src/dart/ast/to_source_visitor_test.dart b/pkg/analyzer/test/src/dart/ast/to_source_visitor_test.dart
index 3d625a7..f919cd5 100644
--- a/pkg/analyzer/test/src/dart/ast/to_source_visitor_test.dart
+++ b/pkg/analyzer/test/src/dart/ast/to_source_visitor_test.dart
@@ -62,12 +62,11 @@
}
void test_visitArgumentList() {
- _assertSource(
- "(a, b)",
- AstTestFactory.argumentList([
- AstTestFactory.identifier3("a"),
- AstTestFactory.identifier3("b")
- ]));
+ final code = '(0, 1)';
+ final findNode = _parseStringToFindNode('''
+final x = f$code;
+''');
+ _assertSource(code, findNode.argumentList(code));
}
void test_visitAsExpression() {
@@ -344,24 +343,21 @@
}
void test_visitClassDeclaration_abstract() {
- _assertSource(
- "abstract class C {}",
- AstTestFactory.classDeclaration(
- Keyword.ABSTRACT, "C", null, null, null, null));
+ final code = 'abstract class C {}';
+ final findNode = _parseStringToFindNode(code);
+ _assertSource(code, findNode.classDeclaration(code));
}
void test_visitClassDeclaration_abstractAugment() {
- ClassDeclaration declaration = AstTestFactory.classDeclaration(
- Keyword.ABSTRACT, "C", null, null, null, null,
- isAugmentation: true);
- _assertSource("abstract augment class C {}", declaration);
+ final code = 'augment abstract class C {}';
+ final findNode = _parseStringToFindNode(code);
+ _assertSource(code, findNode.classDeclaration('class C'));
}
void test_visitClassDeclaration_abstractMacro() {
- ClassDeclaration declaration = AstTestFactory.classDeclaration(
- Keyword.ABSTRACT, "C", null, null, null, null,
- isMacro: true);
- _assertSource("abstract macro class C {}", declaration);
+ final code = 'abstract macro class C {}';
+ final findNode = _parseStringToFindNode(code);
+ _assertSource(code, findNode.classDeclaration(code));
}
void test_visitClassDeclaration_augment() {
@@ -375,8 +371,9 @@
}
void test_visitClassDeclaration_empty() {
- _assertSource("class C {}",
- AstTestFactory.classDeclaration(null, "C", null, null, null, null));
+ final code = 'class C {}';
+ final findNode = _parseStringToFindNode(code);
+ _assertSource(code, findNode.classDeclaration(code));
}
void test_visitClassDeclaration_extends() {
@@ -440,10 +437,9 @@
}
void test_visitClassDeclaration_parameters() {
- _assertSource(
- "class C<E> {}",
- AstTestFactory.classDeclaration(null, "C",
- AstTestFactory.typeParameterList(["E"]), null, null, null));
+ final code = 'class C<E> {}';
+ final findNode = _parseStringToFindNode(code);
+ _assertSource(code, findNode.classDeclaration(code));
}
void test_visitClassDeclaration_parameters_extends() {
@@ -487,13 +483,9 @@
}
void test_visitClassDeclaration_singleMember() {
- _assertSource(
- "class C {var a;}",
- AstTestFactory.classDeclaration(null, "C", null, null, null, null,
- members: [
- AstTestFactory.fieldDeclaration2(
- false, Keyword.VAR, [AstTestFactory.variableDeclaration("a")])
- ]));
+ final code = 'class C {var a;}';
+ final findNode = _parseStringToFindNode(code);
+ _assertSource(code, findNode.classDeclaration(code));
}
void test_visitClassDeclaration_withMetadata() {
@@ -3164,11 +3156,23 @@
}
void test_visitSuperConstructorInvocation() {
- _assertSource("super()", AstTestFactory.superConstructorInvocation());
+ final code = 'super(0)';
+ final findNode = _parseStringToFindNode('''
+class A extends B {
+ A() : $code;
+}
+''');
+ _assertSource(code, findNode.superConstructorInvocation(code));
}
void test_visitSuperConstructorInvocation_named() {
- _assertSource("super.c()", AstTestFactory.superConstructorInvocation2("c"));
+ final code = 'super.named(0)';
+ final findNode = _parseStringToFindNode('''
+class A extends B {
+ A() : $code;
+}
+''');
+ _assertSource(code, findNode.superConstructorInvocation(code));
}
void test_visitSuperExpression() {
diff --git a/pkg/analyzer/test/src/dart/constant/test_all.dart b/pkg/analyzer/test/src/dart/constant/test_all.dart
index 977b74c..a46b409 100644
--- a/pkg/analyzer/test/src/dart/constant/test_all.dart
+++ b/pkg/analyzer/test/src/dart/constant/test_all.dart
@@ -7,7 +7,6 @@
import 'evaluation_test.dart' as evaluation;
import 'has_type_parameter_reference_test.dart' as has_type_parameter_reference;
import 'potentially_constant_test.dart' as potentially_constant;
-import 'utilities_test.dart' as utilities;
import 'value_test.dart' as value;
main() {
@@ -15,7 +14,6 @@
evaluation.main();
has_type_parameter_reference.main();
potentially_constant.main();
- utilities.main();
value.main();
}, name: 'constant');
}
diff --git a/pkg/analyzer/test/src/dart/constant/utilities_test.dart b/pkg/analyzer/test/src/dart/constant/utilities_test.dart
deleted file mode 100644
index 6d3619b..0000000
--- a/pkg/analyzer/test/src/dart/constant/utilities_test.dart
+++ /dev/null
@@ -1,99 +0,0 @@
-// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'package:analyzer/dart/ast/ast.dart';
-import 'package:analyzer/dart/ast/token.dart';
-import 'package:analyzer/dart/element/element.dart';
-import 'package:analyzer/src/dart/ast/token.dart';
-import 'package:analyzer/src/dart/element/element.dart';
-import 'package:analyzer/src/generated/constant.dart';
-import 'package:analyzer/src/generated/testing/ast_test_factory.dart';
-import 'package:analyzer/src/generated/testing/element_factory.dart';
-import 'package:test/test.dart';
-import 'package:test_reflective_loader/test_reflective_loader.dart';
-
-main() {
- defineReflectiveSuite(() {
- defineReflectiveTests(ReferenceFinderTest);
- });
-}
-
-@reflectiveTest
-class ReferenceFinderTest {
- late final Element _tail;
- final List<ConstantEvaluationTarget> _dependencies = [];
-
- void test_visitSimpleIdentifier_const() {
- _visitNode(_makeTailVariable("v2", true));
- _assertOneArc(_tail);
- }
-
- void test_visitSuperConstructorInvocation_const() {
- _visitNode(_makeTailSuperConstructorInvocation("A", true));
- _assertOneArc(_tail);
- }
-
- void test_visitSuperConstructorInvocation_nonConst() {
- _visitNode(_makeTailSuperConstructorInvocation("A", false));
- _assertOneArc(_tail);
- }
-
- void test_visitSuperConstructorInvocation_unresolved() {
- SuperConstructorInvocation superConstructorInvocation =
- AstTestFactory.superConstructorInvocation();
- _visitNode(superConstructorInvocation);
- _assertNoArcs();
- }
-
- void _assertNoArcs() {
- expect(_dependencies, isEmpty);
- }
-
- void _assertOneArc(Element tail) {
- expect(_dependencies, hasLength(1));
- expect(_dependencies[0], same(tail));
- }
-
- SuperConstructorInvocation _makeTailSuperConstructorInvocation(
- String name, bool isConst) {
- List<ConstructorInitializer> initializers = <ConstructorInitializer>[];
- var constructorDeclaration = AstTestFactory.constructorDeclaration(
- AstTestFactory.identifier3(name),
- null,
- AstTestFactory.formalParameterList(),
- initializers);
- if (isConst) {
- constructorDeclaration.constKeyword = KeywordToken(Keyword.CONST, 0);
- }
- ClassElementImpl classElement = ElementFactory.classElement2(name);
- var superConstructorInvocation =
- AstTestFactory.superConstructorInvocation();
- ConstructorElementImpl constructorElement =
- ElementFactory.constructorElement(classElement, name, isConst);
- _tail = constructorElement;
- superConstructorInvocation.staticElement = constructorElement;
- return superConstructorInvocation;
- }
-
- SimpleIdentifier _makeTailVariable(String name, bool isConst) {
- VariableDeclaration variableDeclaration =
- AstTestFactory.variableDeclaration(name);
- ConstLocalVariableElementImpl variableElement =
- ElementFactory.constLocalVariableElement(name);
- _tail = variableElement;
- variableElement.isConst = isConst;
- AstTestFactory.variableDeclarationList2(
- isConst ? Keyword.CONST : Keyword.VAR, [variableDeclaration]);
- var identifier = AstTestFactory.identifier3(name);
- identifier.staticElement = variableElement;
- return identifier;
- }
-
- void _visitNode(AstNode node) {
- var referenceFinder = ReferenceFinder((dependency) {
- _dependencies.add(dependency);
- });
- node.accept(referenceFinder);
- }
-}