mirror of
https://github.com/dart-lang/sdk
synced 2024-10-05 02:17:16 +00:00
Add FindNode.methodInvocations, use in BaseRangeFactoryTest.
Change-Id: I3c4749bca79004f800a74d84a9c3ae5c5b63f7bc Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/216961 Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
This commit is contained in:
parent
e898eef6a2
commit
c7138fe8cd
|
@ -22,10 +22,7 @@ abstract class BaseRangeFactoryTest extends AbstractSingleUnitTest {
|
|||
/// Assuming that the test code starts with a function whose block body starts
|
||||
/// with a method invocation, return the list of arguments in that invocation.
|
||||
NodeList<Expression> get _argumentList {
|
||||
var f = testUnit.declarations[0] as FunctionDeclaration;
|
||||
var body = f.functionExpression.body as BlockFunctionBody;
|
||||
var statement = body.block.statements[0] as ExpressionStatement;
|
||||
var invocation = statement.expression as MethodInvocation;
|
||||
var invocation = findNode.methodInvocations.single;
|
||||
return invocation.argumentList.arguments;
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
import 'package:analyzer/dart/ast/ast.dart';
|
||||
import 'package:analyzer/src/dart/ast/utilities.dart';
|
||||
import 'package:analyzer/src/test_utilities/function_ast_visitor.dart';
|
||||
|
||||
class FindNode {
|
||||
final String content;
|
||||
|
@ -16,6 +17,16 @@ class FindNode {
|
|||
as LibraryDirective;
|
||||
}
|
||||
|
||||
List<MethodInvocation> get methodInvocations {
|
||||
var result = <MethodInvocation>[];
|
||||
unit.accept(
|
||||
FunctionAstVisitor(
|
||||
methodInvocation: result.add,
|
||||
),
|
||||
);
|
||||
return result;
|
||||
}
|
||||
|
||||
Annotation annotation(String search) {
|
||||
return _node(search, (n) => n is Annotation);
|
||||
}
|
||||
|
|
|
@ -12,6 +12,7 @@ class FunctionAstVisitor extends RecursiveAstVisitor<void> {
|
|||
functionDeclarationStatement;
|
||||
final void Function(FunctionExpression, bool)? functionExpression;
|
||||
final void Function(Label)? label;
|
||||
final void Function(MethodInvocation)? methodInvocation;
|
||||
final void Function(SimpleIdentifier)? simpleIdentifier;
|
||||
final void Function(VariableDeclaration)? variableDeclaration;
|
||||
|
||||
|
@ -20,6 +21,7 @@ class FunctionAstVisitor extends RecursiveAstVisitor<void> {
|
|||
this.functionDeclarationStatement,
|
||||
this.functionExpression,
|
||||
this.label,
|
||||
this.methodInvocation,
|
||||
this.simpleIdentifier,
|
||||
this.variableDeclaration,
|
||||
});
|
||||
|
@ -58,6 +60,14 @@ class FunctionAstVisitor extends RecursiveAstVisitor<void> {
|
|||
super.visitLabel(node);
|
||||
}
|
||||
|
||||
@override
|
||||
void visitMethodInvocation(MethodInvocation node) {
|
||||
if (methodInvocation != null) {
|
||||
methodInvocation!(node);
|
||||
}
|
||||
super.visitMethodInvocation(node);
|
||||
}
|
||||
|
||||
@override
|
||||
void visitSimpleIdentifier(SimpleIdentifier node) {
|
||||
if (simpleIdentifier != null) {
|
||||
|
|
Loading…
Reference in a new issue