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

Unified Diff: pkg/analyzer/test/generated/simple_resolver_test.dart

Issue 2676183002: Don't use Element.computeNode() in resolver tests. (Closed)
Patch Set: Created 3 years, 10 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 | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer/test/generated/simple_resolver_test.dart
diff --git a/pkg/analyzer/test/generated/simple_resolver_test.dart b/pkg/analyzer/test/generated/simple_resolver_test.dart
index f8ce31e0cfc2f270a803976a563368f1f1d4fb13..cf3cc2e4cfd972452e6f777889b5ffd5d6757e30 100644
--- a/pkg/analyzer/test/generated/simple_resolver_test.dart
+++ b/pkg/analyzer/test/generated/simple_resolver_test.dart
@@ -16,6 +16,7 @@ import 'package:analyzer/src/generated/source_io.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
+import '../utils.dart';
import 'resolver_test_case.dart';
import 'test_support.dart';
@@ -127,7 +128,7 @@ class A {
}
test_argumentResolution_setter_propagated() async {
- Source source = addSource(r'''
+ CompilationUnit unit = await resolveSource(r'''
main() {
var a = new A();
a.sss = 0;
@@ -135,17 +136,12 @@ main() {
class A {
set sss(x) {}
}''');
- LibraryElement library = resolve2(source);
- CompilationUnitElement unit = library.definingCompilationUnit;
// find "a.sss = 0"
AssignmentExpression assignment;
{
- FunctionElement mainElement = unit.functions[0];
- FunctionBody mainBody = mainElement.computeNode().functionExpression.body;
- Statement statement = (mainBody as BlockFunctionBody).block.statements[1];
- ExpressionStatement expressionStatement =
- statement as ExpressionStatement;
- assignment = expressionStatement.expression as AssignmentExpression;
+ var statements = AstFinder.getStatementsInTopLevelFunction(unit, 'main');
+ var statement = statements[1] as ExpressionStatement;
+ assignment = statement.expression as AssignmentExpression;
}
// get parameter
Expression rhs = assignment.rightHandSide;
@@ -154,13 +150,13 @@ class A {
expect(parameter, isNotNull);
expect(parameter.displayName, "x");
// validate
- ClassElement classA = unit.types[0];
+ ClassElement classA = unit.element.types[0];
PropertyAccessorElement setter = classA.accessors[0];
expect(setter.parameters[0], same(parameter));
}
test_argumentResolution_setter_propagated_propertyAccess() async {
- Source source = addSource(r'''
+ CompilationUnit unit = await resolveSource(r'''
main() {
var a = new A();
a.b.sss = 0;
@@ -171,17 +167,12 @@ class A {
class B {
set sss(x) {}
}''');
- LibraryElement library = resolve2(source);
- CompilationUnitElement unit = library.definingCompilationUnit;
// find "a.b.sss = 0"
AssignmentExpression assignment;
{
- FunctionElement mainElement = unit.functions[0];
- FunctionBody mainBody = mainElement.computeNode().functionExpression.body;
- Statement statement = (mainBody as BlockFunctionBody).block.statements[1];
- ExpressionStatement expressionStatement =
- statement as ExpressionStatement;
- assignment = expressionStatement.expression as AssignmentExpression;
+ var statements = AstFinder.getStatementsInTopLevelFunction(unit, 'main');
+ var statement = statements[1] as ExpressionStatement;
+ assignment = statement.expression as AssignmentExpression;
}
// get parameter
Expression rhs = assignment.rightHandSide;
@@ -190,13 +181,13 @@ class B {
expect(parameter, isNotNull);
expect(parameter.displayName, "x");
// validate
- ClassElement classB = unit.types[1];
+ ClassElement classB = unit.element.types[1];
PropertyAccessorElement setter = classB.accessors[0];
expect(setter.parameters[0], same(parameter));
}
test_argumentResolution_setter_static() async {
- Source source = addSource(r'''
+ CompilationUnit unit = await resolveSource(r'''
main() {
A a = new A();
a.sss = 0;
@@ -204,17 +195,12 @@ main() {
class A {
set sss(x) {}
}''');
- LibraryElement library = resolve2(source);
- CompilationUnitElement unit = library.definingCompilationUnit;
// find "a.sss = 0"
AssignmentExpression assignment;
{
- FunctionElement mainElement = unit.functions[0];
- FunctionBody mainBody = mainElement.computeNode().functionExpression.body;
- Statement statement = (mainBody as BlockFunctionBody).block.statements[1];
- ExpressionStatement expressionStatement =
- statement as ExpressionStatement;
- assignment = expressionStatement.expression as AssignmentExpression;
+ var statements = AstFinder.getStatementsInTopLevelFunction(unit, 'main');
+ var statement = statements[1] as ExpressionStatement;
+ assignment = statement.expression as AssignmentExpression;
}
// get parameter
Expression rhs = assignment.rightHandSide;
@@ -222,13 +208,13 @@ class A {
expect(parameter, isNotNull);
expect(parameter.displayName, "x");
// validate
- ClassElement classA = unit.types[0];
+ ClassElement classA = unit.element.types[0];
PropertyAccessorElement setter = classA.accessors[0];
expect(setter.parameters[0], same(parameter));
}
test_argumentResolution_setter_static_propertyAccess() async {
- Source source = addSource(r'''
+ CompilationUnit unit = await resolveSource(r'''
main() {
A a = new A();
a.b.sss = 0;
@@ -239,17 +225,12 @@ class A {
class B {
set sss(x) {}
}''');
- LibraryElement library = resolve2(source);
- CompilationUnitElement unit = library.definingCompilationUnit;
// find "a.b.sss = 0"
AssignmentExpression assignment;
{
- FunctionElement mainElement = unit.functions[0];
- FunctionBody mainBody = mainElement.computeNode().functionExpression.body;
- Statement statement = (mainBody as BlockFunctionBody).block.statements[1];
- ExpressionStatement expressionStatement =
- statement as ExpressionStatement;
- assignment = expressionStatement.expression as AssignmentExpression;
+ var statements = AstFinder.getStatementsInTopLevelFunction(unit, 'main');
+ var statement = statements[1] as ExpressionStatement;
+ assignment = statement.expression as AssignmentExpression;
}
// get parameter
Expression rhs = assignment.rightHandSide;
@@ -257,7 +238,7 @@ class B {
expect(parameter, isNotNull);
expect(parameter.displayName, "x");
// validate
- ClassElement classB = unit.types[1];
+ ClassElement classB = unit.element.types[1];
PropertyAccessorElement setter = classB.accessors[0];
expect(setter.parameters[0], same(parameter));
}
@@ -741,17 +722,15 @@ class C extends B with M1, M2 {
}
}
''');
- LibraryElement library = resolve2(source);
- await computeAnalysisResult(source);
+ var analysisResult = await computeAnalysisResult(source);
assertNoErrors(source);
verify([source]);
// Verify that both the getter and setter for "x" in C.f() refer to the
// accessors defined in M2.
- ClassElement classC = library.definingCompilationUnit.types[3];
- MethodDeclaration f = classC.getMethod('f').computeNode();
- BlockFunctionBody body = f.body;
- ExpressionStatement stmt = body.block.statements[0];
- AssignmentExpression assignment = stmt.expression;
+ List<Statement> statements =
+ AstFinder.getStatementsInMethod(analysisResult.unit, 'C', 'f');
+ var statement = statements[0] as ExpressionStatement;
+ AssignmentExpression assignment = statement.expression;
SimpleIdentifier leftHandSide = assignment.leftHandSide;
expect(
resolutionMap
@@ -768,7 +747,7 @@ class C extends B with M1, M2 {
// TODO(paulberry): it appears that auxiliaryElements isn't properly set on
// a SimpleIdentifier that's inside a property access. This bug should be
// fixed.
- Source source = addSource('''
+ Source source = addSource(r'''
class B {}
class M1 {
get x => null;
@@ -783,17 +762,15 @@ void main() {
new C().x += 1;
}
''');
- LibraryElement library = resolve2(source);
- await computeAnalysisResult(source);
+ var analysisResult = await computeAnalysisResult(source);
assertNoErrors(source);
verify([source]);
// Verify that both the getter and setter for "x" in "new C().x" refer to
// the accessors defined in M2.
- FunctionDeclaration main =
- library.definingCompilationUnit.functions[0].computeNode();
- BlockFunctionBody body = main.functionExpression.body;
- ExpressionStatement stmt = body.block.statements[0];
- AssignmentExpression assignment = stmt.expression;
+ List<Statement> statements =
+ AstFinder.getStatementsInTopLevelFunction(analysisResult.unit, 'main');
+ var statement = statements[0] as ExpressionStatement;
+ AssignmentExpression assignment = statement.expression;
PropertyAccess propertyAccess = assignment.leftHandSide;
expect(
resolutionMap
@@ -822,17 +799,15 @@ class C extends B with M1, M2 {
}
}
''');
- LibraryElement library = resolve2(source);
- await computeAnalysisResult(source);
+ var analysisResult = await computeAnalysisResult(source);
assertNoErrors(source);
verify([source]);
// Verify that the getter for "x" in C.f() refers to the getter defined in
// M2.
- ClassElement classC = library.definingCompilationUnit.types[3];
- MethodDeclaration f = classC.getMethod('f').computeNode();
- BlockFunctionBody body = f.body;
- ReturnStatement stmt = body.block.statements[0];
- SimpleIdentifier x = stmt.expression;
+ var statements =
+ AstFinder.getStatementsInMethod(analysisResult.unit, 'C', 'f');
+ var statement = statements[0] as ReturnStatement;
+ SimpleIdentifier x = statement.expression;
expect(resolutionMap.staticElementForIdentifier(x).enclosingElement.name,
'M2');
}
@@ -851,17 +826,16 @@ void main() {
var y = new C().x;
}
''');
- LibraryElement library = resolve2(source);
- await computeAnalysisResult(source);
+ var analysisResult = await computeAnalysisResult(source);
assertNoErrors(source);
verify([source]);
// Verify that the getter for "x" in "new C().x" refers to the getter
// defined in M2.
- FunctionDeclaration main =
- library.definingCompilationUnit.functions[0].computeNode();
- BlockFunctionBody body = main.functionExpression.body;
- VariableDeclarationStatement stmt = body.block.statements[0];
- PropertyAccess propertyAccess = stmt.variables.variables[0].initializer;
+ List<Statement> statements =
+ AstFinder.getStatementsInTopLevelFunction(analysisResult.unit, 'main');
+ var statement = statements[0] as VariableDeclarationStatement;
+ PropertyAccess propertyAccess =
+ statement.variables.variables[0].initializer;
expect(
resolutionMap
.staticElementForIdentifier(propertyAccess.propertyName)
@@ -1571,16 +1545,14 @@ void main() {
new C().f();
}
''');
- LibraryElement library = resolve2(source);
- await computeAnalysisResult(source);
+ var analysisResult = await computeAnalysisResult(source);
assertNoErrors(source);
verify([source]);
// Verify that the "f" in "new C().f()" refers to the "f" defined in M2.
- FunctionDeclaration main =
- library.definingCompilationUnit.functions[0].computeNode();
- BlockFunctionBody body = main.functionExpression.body;
- ExpressionStatement stmt = body.block.statements[0];
- MethodInvocation expr = stmt.expression;
+ List<Statement> statements =
+ AstFinder.getStatementsInTopLevelFunction(analysisResult.unit, 'main');
+ var statement = statements[0] as ExpressionStatement;
+ MethodInvocation expr = statement.expression;
expect(
resolutionMap
.staticElementForIdentifier(expr.methodName)
@@ -1604,16 +1576,14 @@ class C extends B with M1, M2 {
}
}
''');
- LibraryElement library = resolve2(source);
- await computeAnalysisResult(source);
+ var analysisResult = await computeAnalysisResult(source);
assertNoErrors(source);
verify([source]);
// Verify that the call to f() in C.g() refers to the method defined in M2.
- ClassElement classC = library.definingCompilationUnit.types[3];
- MethodDeclaration g = classC.getMethod('g').computeNode();
- BlockFunctionBody body = g.body;
- ExpressionStatement stmt = body.block.statements[0];
- MethodInvocation invocation = stmt.expression;
+ List<Statement> statements =
+ AstFinder.getStatementsInMethod(analysisResult.unit, 'C', 'g');
+ var statement = statements[0] as ExpressionStatement;
+ MethodInvocation invocation = statement.expression;
SimpleIdentifier methodName = invocation.methodName;
expect(
resolutionMap
@@ -1623,7 +1593,7 @@ class C extends B with M1, M2 {
'M2');
}
- test_method_fromMixins_invked_from_outside_class() async {
+ test_method_fromMixins_invoked_from_outside_class() async {
Source source = addSource('''
class B {}
class M1 {
@@ -1637,17 +1607,15 @@ void main() {
new C().f();
}
''');
- LibraryElement library = resolve2(source);
- await computeAnalysisResult(source);
+ var analysisResult = await computeAnalysisResult(source);
assertNoErrors(source);
verify([source]);
// Verify that the call to f() in "new C().f()" refers to the method
// defined in M2.
- FunctionDeclaration main =
- library.definingCompilationUnit.functions[0].computeNode();
- BlockFunctionBody body = main.functionExpression.body;
- ExpressionStatement stmt = body.block.statements[0];
- MethodInvocation invocation = stmt.expression;
+ List<Statement> statements =
+ AstFinder.getStatementsInTopLevelFunction(analysisResult.unit, 'main');
+ var statement = statements[0] as ExpressionStatement;
+ MethodInvocation invocation = statement.expression;
expect(
resolutionMap
.staticElementForIdentifier(invocation.methodName)
@@ -1732,17 +1700,15 @@ class C extends B with M1, M2 {
}
}
''');
- LibraryElement library = resolve2(source);
- await computeAnalysisResult(source);
+ var analysisResult = await computeAnalysisResult(source);
assertNoErrors(source);
verify([source]);
// Verify that the setter for "x" in C.f() refers to the setter defined in
// M2.
- ClassElement classC = library.definingCompilationUnit.types[3];
- MethodDeclaration f = classC.getMethod('f').computeNode();
- BlockFunctionBody body = f.body;
- ExpressionStatement stmt = body.block.statements[0];
- AssignmentExpression assignment = stmt.expression;
+ List<Statement> statements =
+ AstFinder.getStatementsInMethod(analysisResult.unit, 'C', 'f');
+ var statement = statements[0] as ExpressionStatement;
+ AssignmentExpression assignment = statement.expression;
SimpleIdentifier leftHandSide = assignment.leftHandSide;
expect(
resolutionMap
@@ -1766,17 +1732,15 @@ void main() {
new C().x = 1;
}
''');
- LibraryElement library = resolve2(source);
- await computeAnalysisResult(source);
+ var analysisResult = await computeAnalysisResult(source);
assertNoErrors(source);
verify([source]);
// Verify that the setter for "x" in "new C().x" refers to the setter
// defined in M2.
- FunctionDeclaration main =
- library.definingCompilationUnit.functions[0].computeNode();
- BlockFunctionBody body = main.functionExpression.body;
- ExpressionStatement stmt = body.block.statements[0];
- AssignmentExpression assignment = stmt.expression;
+ List<Statement> statements =
+ AstFinder.getStatementsInTopLevelFunction(analysisResult.unit, 'main');
+ var statement = statements[0] as ExpressionStatement;
+ AssignmentExpression assignment = statement.expression;
PropertyAccess propertyAccess = assignment.leftHandSide;
expect(
resolutionMap
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698