Run more analysis tests with the new analysis driver.
R=brianwilkerson@google.com BUG= Review-Url: https://codereview.chromium.org/2628083002 .
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
|
||||
library analyzer.test.generated.resolver_test;
|
||||
|
||||
import 'dart:async';
|
||||
import 'dart:collection';
|
||||
|
||||
import 'package:analyzer/dart/ast/ast.dart';
|
||||
@@ -51,6 +52,7 @@ main() {
|
||||
defineReflectiveTests(TypePropagationTest);
|
||||
defineReflectiveTests(TypeProviderImplTest);
|
||||
defineReflectiveTests(TypeResolverVisitorTest);
|
||||
defineReflectiveTests(TypePropagationTest_Driver);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1091,11 +1093,7 @@ A f(var p) {
|
||||
return null;
|
||||
}
|
||||
}''');
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
ClassDeclaration classA = unit.declarations[0] as ClassDeclaration;
|
||||
InterfaceType typeA =
|
||||
resolutionMap.elementDeclaredByClassDeclaration(classA).type;
|
||||
@@ -1116,11 +1114,7 @@ A f(var p) {
|
||||
assert (p is A);
|
||||
return p;
|
||||
}''');
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
ClassDeclaration classA = unit.declarations[0] as ClassDeclaration;
|
||||
InterfaceType typeA =
|
||||
resolutionMap.elementDeclaredByClassDeclaration(classA).type;
|
||||
@@ -1139,11 +1133,7 @@ f() {
|
||||
v = 0;
|
||||
return v;
|
||||
}''');
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
FunctionDeclaration function = unit.declarations[0] as FunctionDeclaration;
|
||||
BlockFunctionBody body =
|
||||
function.functionExpression.body as BlockFunctionBody;
|
||||
@@ -1159,11 +1149,7 @@ f() {
|
||||
v = 1.0;
|
||||
return v;
|
||||
}''');
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
FunctionDeclaration function = unit.declarations[0] as FunctionDeclaration;
|
||||
BlockFunctionBody body =
|
||||
function.functionExpression.body as BlockFunctionBody;
|
||||
@@ -1182,11 +1168,10 @@ main() {
|
||||
CompilationUnit unit;
|
||||
{
|
||||
Source source = addSource(code);
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
TestAnalysisResult analysisResult = await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
unit = resolveCompilationUnit(source, library);
|
||||
unit = analysisResult.unit;
|
||||
}
|
||||
{
|
||||
SimpleIdentifier identifier = EngineTestCase.findNode(
|
||||
@@ -1215,11 +1200,7 @@ main(CanvasElement canvas) {
|
||||
var context = canvas.getContext('2d');
|
||||
}''';
|
||||
Source source = addSource(code);
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
SimpleIdentifier identifier = EngineTestCase.findNode(
|
||||
unit, code, "context", (node) => node is SimpleIdentifier);
|
||||
expect(resolutionMap.propagatedTypeForExpression(identifier).name,
|
||||
@@ -1235,11 +1216,7 @@ main() {
|
||||
}
|
||||
}''';
|
||||
Source source = addSource(code);
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
InterfaceType stringType = typeProvider.stringType;
|
||||
// in the declaration
|
||||
{
|
||||
@@ -1264,11 +1241,7 @@ f(Stream<String> stream) async {
|
||||
}
|
||||
}''';
|
||||
Source source = addSource(code);
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
InterfaceType stringType = typeProvider.stringType;
|
||||
// in the declaration
|
||||
{
|
||||
@@ -1297,11 +1270,7 @@ f(MyCustomStream<String> stream) async {
|
||||
}
|
||||
}''';
|
||||
Source source = addSource(code);
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
InterfaceType listOfStringType =
|
||||
typeProvider.listType.instantiate([typeProvider.stringType]);
|
||||
// in the declaration
|
||||
@@ -1330,11 +1299,7 @@ f(MyMap<int, String> m) {
|
||||
});
|
||||
}''';
|
||||
Source source = addSource(code);
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
// k
|
||||
DartType intType = typeProvider.intType;
|
||||
FormalParameter kParameter = EngineTestCase.findNode(
|
||||
@@ -1365,11 +1330,7 @@ f(MyMap<int, String> m) {
|
||||
m2.forEach((k, v) {});
|
||||
}''';
|
||||
Source source = addSource(code);
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
// k
|
||||
DartType intType = typeProvider.intType;
|
||||
FormalParameter kParameter = EngineTestCase.findNode(
|
||||
@@ -1390,11 +1351,7 @@ main() {
|
||||
});
|
||||
}''';
|
||||
Source source = addSource(code);
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
// v
|
||||
DartType dynamicType = typeProvider.dynamicType;
|
||||
DartType stringType = typeProvider.stringType;
|
||||
@@ -1419,11 +1376,7 @@ f(MyList list) {
|
||||
});
|
||||
}''';
|
||||
Source source = addSource(code);
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
// v
|
||||
DartType intType = typeProvider.intType;
|
||||
FormalParameter vParameter = EngineTestCase.findNode(
|
||||
@@ -1446,11 +1399,8 @@ x() {
|
||||
a.m(() => 0);
|
||||
}''';
|
||||
Source source = addSource(code);
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source, noErrors: false);
|
||||
assertErrors(source, [StaticWarningCode.ARGUMENT_TYPE_NOT_ASSIGNABLE]);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
// () => 0
|
||||
FunctionExpression functionExpression = EngineTestCase.findNode(
|
||||
unit, code, "() => 0)", (node) => node is FunctionExpression);
|
||||
@@ -1470,11 +1420,7 @@ f(MyList<String> list) {
|
||||
});
|
||||
}''';
|
||||
Source source = addSource(code);
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
// v
|
||||
DartType stringType = typeProvider.stringType;
|
||||
FormalParameter vParameter = EngineTestCase.findNode(
|
||||
@@ -1498,11 +1444,7 @@ main(Future<int> firstFuture) {
|
||||
});
|
||||
}''';
|
||||
Source source = addSource(code);
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
// p1
|
||||
FormalParameter p1 = EngineTestCase.findNode(
|
||||
unit, code, "p1) {", (node) => node is SimpleFormalParameter);
|
||||
@@ -1523,11 +1465,7 @@ f() {
|
||||
var v = 0;
|
||||
return v;
|
||||
}''');
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
FunctionDeclaration function = unit.declarations[0] as FunctionDeclaration;
|
||||
BlockFunctionBody body =
|
||||
function.functionExpression.body as BlockFunctionBody;
|
||||
@@ -1554,8 +1492,7 @@ f() {
|
||||
var v = 'String';
|
||||
v.
|
||||
}''');
|
||||
LibraryElement library = resolve2(source);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source, noErrors: false);
|
||||
FunctionDeclaration function = unit.declarations[0] as FunctionDeclaration;
|
||||
BlockFunctionBody body =
|
||||
function.functionExpression.body as BlockFunctionBody;
|
||||
@@ -1572,11 +1509,7 @@ f() {
|
||||
int v = 0;
|
||||
return v;
|
||||
}''');
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
FunctionDeclaration function = unit.declarations[0] as FunctionDeclaration;
|
||||
BlockFunctionBody body =
|
||||
function.functionExpression.body as BlockFunctionBody;
|
||||
@@ -1604,11 +1537,7 @@ f() {
|
||||
List<int> v = <int>[];
|
||||
return v;
|
||||
}''');
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
FunctionDeclaration function = unit.declarations[0] as FunctionDeclaration;
|
||||
BlockFunctionBody body =
|
||||
function.functionExpression.body as BlockFunctionBody;
|
||||
@@ -1639,11 +1568,7 @@ main() {
|
||||
CompilationUnit unit;
|
||||
{
|
||||
Source source = addSource(code);
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
unit = resolveCompilationUnit(source, library);
|
||||
unit = await _computeResolvedUnit(source);
|
||||
}
|
||||
{
|
||||
SimpleIdentifier identifier = EngineTestCase.findNode(
|
||||
@@ -1684,11 +1609,7 @@ class A {}
|
||||
A f(var p) {
|
||||
return (p is A) ? p : null;
|
||||
}''');
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
ClassDeclaration classA = unit.declarations[0] as ClassDeclaration;
|
||||
InterfaceType typeA =
|
||||
resolutionMap.elementDeclaredByClassDeclaration(classA).type;
|
||||
@@ -1713,11 +1634,7 @@ A f(var p) {
|
||||
return null;
|
||||
}
|
||||
}''');
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
// prepare A
|
||||
InterfaceType typeA;
|
||||
{
|
||||
@@ -1754,13 +1671,7 @@ A f(A p) {
|
||||
return null;
|
||||
}
|
||||
}''');
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
// ClassDeclaration classA = (ClassDeclaration) unit.getDeclarations().get(0);
|
||||
// InterfaceType typeA = classA.getElement().getType();
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
FunctionDeclaration function = unit.declarations[1] as FunctionDeclaration;
|
||||
BlockFunctionBody body =
|
||||
function.functionExpression.body as BlockFunctionBody;
|
||||
@@ -1781,11 +1692,7 @@ A f(var p) {
|
||||
return null;
|
||||
}
|
||||
}''');
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
ClassDeclaration classA = unit.declarations[0] as ClassDeclaration;
|
||||
InterfaceType typeA =
|
||||
resolutionMap.elementDeclaredByClassDeclaration(classA).type;
|
||||
@@ -1806,11 +1713,7 @@ A f(var p) {
|
||||
A a = (p is A) ? p : throw null;
|
||||
return p;
|
||||
}''');
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
ClassDeclaration classA = unit.declarations[0] as ClassDeclaration;
|
||||
InterfaceType typeA =
|
||||
resolutionMap.elementDeclaredByClassDeclaration(classA).type;
|
||||
@@ -1833,11 +1736,7 @@ A f(var p) {
|
||||
}
|
||||
return p;
|
||||
}''');
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
ClassDeclaration classA = unit.declarations[0] as ClassDeclaration;
|
||||
InterfaceType typeA =
|
||||
resolutionMap.elementDeclaredByClassDeclaration(classA).type;
|
||||
@@ -1861,10 +1760,7 @@ A f(A p) {
|
||||
}
|
||||
return p;
|
||||
}''');
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
FunctionDeclaration function = unit.declarations[2] as FunctionDeclaration;
|
||||
BlockFunctionBody body =
|
||||
function.functionExpression.body as BlockFunctionBody;
|
||||
@@ -1885,11 +1781,7 @@ A f(var p) {
|
||||
}
|
||||
return p;
|
||||
}''');
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
ClassDeclaration classA = unit.declarations[0] as ClassDeclaration;
|
||||
InterfaceType typeA =
|
||||
resolutionMap.elementDeclaredByClassDeclaration(classA).type;
|
||||
@@ -1909,11 +1801,7 @@ class A {}
|
||||
A f(var p) {
|
||||
return (p is! A) ? null : p;
|
||||
}''');
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
ClassDeclaration classA = unit.declarations[0] as ClassDeclaration;
|
||||
InterfaceType typeA =
|
||||
resolutionMap.elementDeclaredByClassDeclaration(classA).type;
|
||||
@@ -1938,11 +1826,7 @@ A f(var p) {
|
||||
return p;
|
||||
}
|
||||
}''');
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
ClassDeclaration classA = unit.declarations[0] as ClassDeclaration;
|
||||
InterfaceType typeA =
|
||||
resolutionMap.elementDeclaredByClassDeclaration(classA).type;
|
||||
@@ -1966,10 +1850,7 @@ A f(var p) {
|
||||
return p;
|
||||
}
|
||||
}''');
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source, noErrors: false);
|
||||
ClassDeclaration classA = unit.declarations[0] as ClassDeclaration;
|
||||
InterfaceType typeA =
|
||||
resolutionMap.elementDeclaredByClassDeclaration(classA).type;
|
||||
@@ -1990,11 +1871,7 @@ A f(var p) {
|
||||
A a = (p is! A) ? throw null : p;
|
||||
return p;
|
||||
}''');
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
ClassDeclaration classA = unit.declarations[0] as ClassDeclaration;
|
||||
InterfaceType typeA =
|
||||
resolutionMap.elementDeclaredByClassDeclaration(classA).type;
|
||||
@@ -2015,11 +1892,7 @@ A f(var p) {
|
||||
}
|
||||
return p;
|
||||
}''');
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
ClassDeclaration classA = unit.declarations[0] as ClassDeclaration;
|
||||
InterfaceType typeA =
|
||||
resolutionMap.elementDeclaredByClassDeclaration(classA).type;
|
||||
@@ -2091,11 +1964,7 @@ f() {
|
||||
var v = [0, '1', 2];
|
||||
return v[2];
|
||||
}''');
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
FunctionDeclaration function = unit.declarations[0] as FunctionDeclaration;
|
||||
BlockFunctionBody body =
|
||||
function.functionExpression.body as BlockFunctionBody;
|
||||
@@ -2110,11 +1979,7 @@ f() {
|
||||
var v = [0, 1, 2];
|
||||
return v[2];
|
||||
}''');
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
FunctionDeclaration function = unit.declarations[0] as FunctionDeclaration;
|
||||
BlockFunctionBody body =
|
||||
function.functionExpression.body as BlockFunctionBody;
|
||||
@@ -2135,11 +2000,7 @@ f() {
|
||||
var v = {'0' : 0, 1 : '1', '2' : 2};
|
||||
return v;
|
||||
}''');
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
FunctionDeclaration function = unit.declarations[0] as FunctionDeclaration;
|
||||
BlockFunctionBody body =
|
||||
function.functionExpression.body as BlockFunctionBody;
|
||||
@@ -2159,11 +2020,7 @@ f() {
|
||||
var v = {'a' : 0, 'b' : 1, 'c' : 2};
|
||||
return v;
|
||||
}''');
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
FunctionDeclaration function = unit.declarations[0] as FunctionDeclaration;
|
||||
BlockFunctionBody body =
|
||||
function.functionExpression.body as BlockFunctionBody;
|
||||
@@ -2471,11 +2328,7 @@ main() {
|
||||
var b3 = query('body div');
|
||||
return [v1, v2, v3, v4, v5, v6, v7, m1, b1, b2, b3];
|
||||
}''');
|
||||
LibraryElement library = resolve2(source);
|
||||
await computeAnalysisResult(source);
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
CompilationUnit unit = resolveCompilationUnit(source, library);
|
||||
CompilationUnit unit = await _computeResolvedUnit(source);
|
||||
FunctionDeclaration main = unit.declarations[0] as FunctionDeclaration;
|
||||
BlockFunctionBody body = main.functionExpression.body as BlockFunctionBody;
|
||||
ReturnStatement statement = body.block.statements[11] as ReturnStatement;
|
||||
@@ -2504,6 +2357,33 @@ main() {
|
||||
expect(resolutionMap.propagatedTypeForExpression(elements[10]).name,
|
||||
"Element");
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the resolved unit for the given [source].
|
||||
*
|
||||
* If [noErrors] is not specified or is not `true`, [assertNoErrors].
|
||||
*/
|
||||
Future<CompilationUnit> _computeResolvedUnit(Source source,
|
||||
{bool noErrors: true}) async {
|
||||
TestAnalysisResult analysisResult = await computeAnalysisResult(source);
|
||||
if (noErrors) {
|
||||
assertNoErrors(source);
|
||||
verify([source]);
|
||||
}
|
||||
return analysisResult.unit;
|
||||
}
|
||||
}
|
||||
|
||||
@reflectiveTest
|
||||
class TypePropagationTest_Driver extends TypePropagationTest {
|
||||
@override
|
||||
bool get enableNewAnalysisDriver => true;
|
||||
|
||||
@failingTest
|
||||
@override
|
||||
test_query() {
|
||||
return super.test_query();
|
||||
}
|
||||
}
|
||||
|
||||
@reflectiveTest
|
||||
|
||||
@@ -517,10 +517,11 @@ class ResolverTestCase extends EngineTestCase {
|
||||
analysisContext2.applyChanges(changeSet);
|
||||
}
|
||||
|
||||
Future<Null> computeAnalysisResult(Source source) async {
|
||||
Future<TestAnalysisResult> computeAnalysisResult(Source source) async {
|
||||
TestAnalysisResult analysisResult;
|
||||
if (enableNewAnalysisDriver) {
|
||||
AnalysisResult result = await driver.getResult(source.fullName);
|
||||
analysisResults[source] =
|
||||
analysisResult =
|
||||
new TestAnalysisResult(source, result.unit, result.errors);
|
||||
} else {
|
||||
analysisContext2.computeKindOf(source);
|
||||
@@ -529,9 +530,11 @@ class ResolverTestCase extends EngineTestCase {
|
||||
CompilationUnit unit =
|
||||
analysisContext.resolveCompilationUnit2(source, libraries.first);
|
||||
List<AnalysisError> errors = analysisContext.computeErrors(source);
|
||||
analysisResults[source] = new TestAnalysisResult(source, unit, errors);
|
||||
analysisResult = new TestAnalysisResult(source, unit, errors);
|
||||
}
|
||||
}
|
||||
analysisResults[source] = analysisResult;
|
||||
return analysisResult;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -916,11 +919,10 @@ class StaticTypeAnalyzer2TestShared extends ResolverTestCase {
|
||||
Future<Null> resolveTestUnit(String code) async {
|
||||
testCode = code;
|
||||
testSource = addSource(testCode);
|
||||
LibraryElement library = resolve2(testSource);
|
||||
await computeAnalysisResult(testSource);
|
||||
TestAnalysisResult analysisResult = await computeAnalysisResult(testSource);
|
||||
assertNoErrors(testSource);
|
||||
verify([testSource]);
|
||||
testUnit = resolveCompilationUnit(testSource, library);
|
||||
testUnit = analysisResult.unit;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -33,6 +33,7 @@ main() {
|
||||
defineReflectiveSuite(() {
|
||||
defineReflectiveTests(StaticTypeAnalyzerTest);
|
||||
defineReflectiveTests(StaticTypeAnalyzer2Test);
|
||||
defineReflectiveTests(StaticTypeAnalyzer2Test_Driver);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -171,6 +172,12 @@ main() {
|
||||
}
|
||||
}
|
||||
|
||||
@reflectiveTest
|
||||
class StaticTypeAnalyzer2Test_Driver extends StaticTypeAnalyzer2Test {
|
||||
@override
|
||||
bool get enableNewAnalysisDriver => true;
|
||||
}
|
||||
|
||||
@reflectiveTest
|
||||
class StaticTypeAnalyzerTest extends EngineTestCase {
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user