| Index: pkg/analyzer/test/src/task/dart_test.dart
|
| diff --git a/pkg/analyzer/test/src/task/dart_test.dart b/pkg/analyzer/test/src/task/dart_test.dart
|
| index c01223cff632f6699c954acd8493150c1a931e62..06b94cd6699ca64c1648eb83b7eaa6f99c83ffc1 100644
|
| --- a/pkg/analyzer/test/src/task/dart_test.dart
|
| +++ b/pkg/analyzer/test/src/task/dart_test.dart
|
| @@ -49,7 +49,6 @@ main() {
|
| runReflectiveTests(ComputeConstantValueTaskTest);
|
| runReflectiveTests(ComputeInferableStaticVariableDependenciesTaskTest);
|
| runReflectiveTests(ComputeLibraryCycleTaskTest);
|
| - runReflectiveTests(ComputePropagableVariableDependenciesTaskTest);
|
| runReflectiveTests(ContainingLibrariesTaskTest);
|
| runReflectiveTests(DartErrorsTaskTest);
|
| runReflectiveTests(EvaluateUnitConstantsTaskTest);
|
| @@ -64,8 +63,6 @@ main() {
|
| runReflectiveTests(LibraryUnitErrorsTaskTest);
|
| runReflectiveTests(ParseDartTaskTest);
|
| runReflectiveTests(PartiallyResolveUnitReferencesTaskTest);
|
| - runReflectiveTests(PropagateVariableTypesInUnitTaskTest);
|
| - runReflectiveTests(PropagateVariableTypeTaskTest);
|
| runReflectiveTests(ReferencedNamesBuilderTest);
|
| runReflectiveTests(ResolveDirectiveElementsTaskTest);
|
| runReflectiveTests(ResolveInstanceFieldsInUnitTaskTest);
|
| @@ -103,8 +100,6 @@ isInstanceOf isComputeConstantValueTask =
|
| new isInstanceOf<ComputeConstantValueTask>();
|
| isInstanceOf isComputeInferableStaticVariableDependenciesTask =
|
| new isInstanceOf<ComputeInferableStaticVariableDependenciesTask>();
|
| -isInstanceOf isComputePropagableVariableDependenciesTask =
|
| - new isInstanceOf<ComputePropagableVariableDependenciesTask>();
|
| isInstanceOf isContainingLibrariesTask =
|
| new isInstanceOf<ContainingLibrariesTask>();
|
| isInstanceOf isDartErrorsTask = new isInstanceOf<DartErrorsTask>();
|
| @@ -129,10 +124,6 @@ isInstanceOf isLibraryUnitErrorsTask =
|
| isInstanceOf isParseDartTask = new isInstanceOf<ParseDartTask>();
|
| isInstanceOf isPartiallyResolveUnitReferencesTask =
|
| new isInstanceOf<PartiallyResolveUnitReferencesTask>();
|
| -isInstanceOf isPropagateVariableTypesInUnitTask =
|
| - new isInstanceOf<PropagateVariableTypesInUnitTask>();
|
| -isInstanceOf isPropagateVariableTypeTask =
|
| - new isInstanceOf<PropagateVariableTypeTask>();
|
| isInstanceOf isResolveDirectiveElementsTask =
|
| new isInstanceOf<ResolveDirectiveElementsTask>();
|
| isInstanceOf isResolveLibraryReferencesTask =
|
| @@ -2017,139 +2008,6 @@ import 'dart:core';
|
| }
|
|
|
| @reflectiveTest
|
| -class ComputePropagableVariableDependenciesTaskTest
|
| - extends _AbstractDartTaskTest {
|
| - List<VariableElement> getPropagableVariableDependencies(
|
| - Map<ResultDescriptor, dynamic> outputs) {
|
| - return outputs[PROPAGABLE_VARIABLE_DEPENDENCIES] as List<VariableElement>;
|
| - }
|
| -
|
| - test_perform_instanceField() {
|
| - AnalysisTarget source = newSource(
|
| - '/test.dart',
|
| - '''
|
| -class A {
|
| - final a = a1 + a2 + a3 + a4 + B.b1 + B.b2 + B.b3 + B.b4;
|
| - static const a1 = 1;
|
| - final a2 = 2;
|
| - final a3;
|
| - var a4 = 4;
|
| -}
|
| -class B {
|
| - static const b1 = 1;
|
| - static final b2 = 2;
|
| - static final b3;
|
| - static var b4 = 4;
|
| -}
|
| -''');
|
| - LibrarySpecificUnit target = new LibrarySpecificUnit(source, source);
|
| - computeResult(target, RESOLVED_UNIT7);
|
| - CompilationUnit unit = outputs[RESOLVED_UNIT7];
|
| - FieldElement elementA = AstFinder.getFieldInClassElement(unit, 'A', 'a');
|
| - // compute
|
| - computeResult(elementA, PROPAGABLE_VARIABLE_DEPENDENCIES,
|
| - matcher: isComputePropagableVariableDependenciesTask);
|
| - // verify
|
| - expect(outputs, hasLength(1));
|
| - List<VariableElement> dependencies =
|
| - getPropagableVariableDependencies(outputs);
|
| - expect(
|
| - dependencies,
|
| - unorderedEquals([
|
| - AstFinder.getFieldInClassElement(unit, 'A', 'a1'),
|
| - AstFinder.getFieldInClassElement(unit, 'A', 'a2'),
|
| - AstFinder.getFieldInClassElement(unit, 'B', 'b1'),
|
| - AstFinder.getFieldInClassElement(unit, 'B', 'b2')
|
| - ]));
|
| - }
|
| -
|
| - test_perform_topLevel() {
|
| - AnalysisTarget source = newSource(
|
| - '/test.dart',
|
| - '''
|
| -const a = d1 + d2 + d3 + d4;
|
| -const d1 = 1;
|
| -final d2 = 2;
|
| -final d3;
|
| -var d4 = 4;
|
| -''');
|
| - LibrarySpecificUnit target = new LibrarySpecificUnit(source, source);
|
| - computeResult(target, RESOLVED_UNIT7);
|
| - CompilationUnit unit = outputs[RESOLVED_UNIT7];
|
| - TopLevelVariableElement elementA =
|
| - AstFinder.getTopLevelVariableElement(unit, 'a');
|
| - // compute
|
| - computeResult(elementA, PROPAGABLE_VARIABLE_DEPENDENCIES,
|
| - matcher: isComputePropagableVariableDependenciesTask);
|
| - // verify
|
| - expect(outputs, hasLength(1));
|
| - List<VariableElement> dependencies =
|
| - getPropagableVariableDependencies(outputs);
|
| - expect(
|
| - dependencies,
|
| - unorderedEquals([
|
| - AstFinder.getTopLevelVariableElement(unit, 'd1'),
|
| - AstFinder.getTopLevelVariableElement(unit, 'd2')
|
| - ]));
|
| - }
|
| -
|
| - test_perform_topLevel_ignoreLocal() {
|
| - AnalysisTarget source = newSource(
|
| - '/test.dart',
|
| - '''
|
| -final a = () {
|
| - const b = 2;
|
| - const c = 3;
|
| - return b + c;
|
| -}() + d;
|
| -final d = 4;
|
| -''');
|
| - LibrarySpecificUnit target = new LibrarySpecificUnit(source, source);
|
| - computeResult(target, RESOLVED_UNIT7);
|
| - CompilationUnit unit = outputs[RESOLVED_UNIT7];
|
| - TopLevelVariableElement elementA =
|
| - AstFinder.getTopLevelVariableElement(unit, 'a');
|
| - // compute
|
| - computeResult(elementA, PROPAGABLE_VARIABLE_DEPENDENCIES,
|
| - matcher: isComputePropagableVariableDependenciesTask);
|
| - // verify
|
| - expect(outputs, hasLength(1));
|
| - List<VariableElement> dependencies =
|
| - getPropagableVariableDependencies(outputs);
|
| - expect(dependencies,
|
| - unorderedEquals([AstFinder.getTopLevelVariableElement(unit, 'd')]));
|
| - }
|
| -
|
| - test_perform_topLevel_withoutSpaceAfterType() {
|
| - AnalysisTarget source = newSource(
|
| - '/test.dart',
|
| - '''
|
| -const List<int>a=[b, c];
|
| -const b = 1;
|
| -const c = 2;
|
| -''');
|
| - LibrarySpecificUnit target = new LibrarySpecificUnit(source, source);
|
| - computeResult(target, RESOLVED_UNIT7);
|
| - CompilationUnit unit = outputs[RESOLVED_UNIT7];
|
| - TopLevelVariableElement elementA =
|
| - AstFinder.getTopLevelVariableElement(unit, 'a');
|
| - // compute
|
| - computeResult(elementA, PROPAGABLE_VARIABLE_DEPENDENCIES,
|
| - matcher: isComputePropagableVariableDependenciesTask);
|
| - // verify
|
| - expect(outputs, hasLength(1));
|
| - List<VariableElement> dependencies =
|
| - getPropagableVariableDependencies(outputs);
|
| - expect(
|
| - dependencies,
|
| - unorderedEquals([
|
| - AstFinder.getTopLevelVariableElement(unit, 'b'),
|
| - AstFinder.getTopLevelVariableElement(unit, 'c')
|
| - ]));
|
| - }
|
| -}
|
| -
|
| -@reflectiveTest
|
| class ContainingLibrariesTaskTest extends _AbstractDartTaskTest {
|
| List<Source> getContainingLibraries(Map<ResultDescriptor, dynamic> outputs) {
|
| return outputs[CONTAINING_LIBRARIES] as List<Source>;
|
| @@ -2237,9 +2095,9 @@ library lib;
|
| class A {}
|
| ''');
|
| LibrarySpecificUnit target = new LibrarySpecificUnit(source, source);
|
| - computeResult(target, RESOLVED_UNIT13);
|
| - expect(outputs[RESOLVED_UNIT13], isNotNull);
|
| - expect(outputs[CREATED_RESOLVED_UNIT13], isTrue);
|
| + computeResult(target, RESOLVED_UNIT12);
|
| + expect(outputs[RESOLVED_UNIT12], isNotNull);
|
| + expect(outputs[CREATED_RESOLVED_UNIT12], isTrue);
|
| }
|
|
|
| test_perform() {
|
| @@ -2256,9 +2114,9 @@ f() {}
|
| const x = const C();
|
| ''');
|
| LibrarySpecificUnit target = new LibrarySpecificUnit(source, source);
|
| - computeResult(target, RESOLVED_UNIT13,
|
| + computeResult(target, RESOLVED_UNIT12,
|
| matcher: isEvaluateUnitConstantsTask);
|
| - CompilationUnit unit = outputs[RESOLVED_UNIT13];
|
| + CompilationUnit unit = outputs[RESOLVED_UNIT12];
|
| CompilationUnitElement unitElement = unit.element;
|
| expect(
|
| (unitElement.types[0].constructors[0] as ConstructorElementImpl)
|
| @@ -2765,9 +2623,9 @@ library lib;
|
| class A {}
|
| ''');
|
| LibrarySpecificUnit target = new LibrarySpecificUnit(source, source);
|
| - computeResult(target, RESOLVED_UNIT11);
|
| - expect(outputs[RESOLVED_UNIT11], isNotNull);
|
| - expect(outputs[CREATED_RESOLVED_UNIT11], isTrue);
|
| + computeResult(target, RESOLVED_UNIT10);
|
| + expect(outputs[RESOLVED_UNIT10], isNotNull);
|
| + expect(outputs[CREATED_RESOLVED_UNIT10], isTrue);
|
| }
|
|
|
| void test_perform() {
|
| @@ -2787,9 +2645,9 @@ class X {}
|
| class Y {}
|
| class Z {}
|
| ''');
|
| - computeResult(new LibrarySpecificUnit(source, source), RESOLVED_UNIT11,
|
| + computeResult(new LibrarySpecificUnit(source, source), RESOLVED_UNIT10,
|
| matcher: isInferInstanceMembersInUnitTask);
|
| - CompilationUnit unit = outputs[RESOLVED_UNIT11];
|
| + CompilationUnit unit = outputs[RESOLVED_UNIT10];
|
| VariableDeclaration field = AstFinder.getFieldInClass(unit, 'B', 'f');
|
| MethodDeclaration method = AstFinder.getMethodInClass(unit, 'B', 'm');
|
| DartType typeX = AstFinder.getClass(unit, 'X').element.type;
|
| @@ -2821,12 +2679,12 @@ class M {
|
| }
|
| ''');
|
| computeResult(
|
| - new LibrarySpecificUnit(firstSource, firstSource), RESOLVED_UNIT11,
|
| + new LibrarySpecificUnit(firstSource, firstSource), RESOLVED_UNIT10,
|
| matcher: isInferInstanceMembersInUnitTask);
|
| - CompilationUnit firstUnit = outputs[RESOLVED_UNIT11];
|
| + CompilationUnit firstUnit = outputs[RESOLVED_UNIT10];
|
| computeResult(
|
| - new LibrarySpecificUnit(secondSource, secondSource), RESOLVED_UNIT11);
|
| - CompilationUnit secondUnit = outputs[RESOLVED_UNIT11];
|
| + new LibrarySpecificUnit(secondSource, secondSource), RESOLVED_UNIT10);
|
| + CompilationUnit secondUnit = outputs[RESOLVED_UNIT10];
|
|
|
| VariableDeclaration variableA =
|
| AstFinder.getTopLevelVariable(firstUnit, 'a');
|
| @@ -2853,8 +2711,8 @@ class C {
|
| String field = topLevel;
|
| }
|
| ''');
|
| - computeResult(new LibrarySpecificUnit(source, source), RESOLVED_UNIT11);
|
| - CompilationUnit unit = outputs[RESOLVED_UNIT11];
|
| + computeResult(new LibrarySpecificUnit(source, source), RESOLVED_UNIT10);
|
| + CompilationUnit unit = outputs[RESOLVED_UNIT10];
|
| VariableDeclaration topLevelDecl =
|
| AstFinder.getTopLevelVariable(unit, 'topLevel');
|
| VariableDeclaration fieldDecl =
|
| @@ -2885,9 +2743,9 @@ library lib;
|
| class A {}
|
| ''');
|
| LibrarySpecificUnit target = new LibrarySpecificUnit(source, source);
|
| - computeResult(target, RESOLVED_UNIT9);
|
| - expect(outputs[RESOLVED_UNIT9], isNotNull);
|
| - expect(outputs[CREATED_RESOLVED_UNIT9], isTrue);
|
| + computeResult(target, RESOLVED_UNIT8);
|
| + expect(outputs[RESOLVED_UNIT8], isNotNull);
|
| + expect(outputs[CREATED_RESOLVED_UNIT8], isTrue);
|
| }
|
|
|
| void test_perform_const_field() {
|
| @@ -2899,9 +2757,9 @@ class M {
|
| static const X = "";
|
| }
|
| ''');
|
| - computeResult(new LibrarySpecificUnit(source, source), RESOLVED_UNIT9,
|
| + computeResult(new LibrarySpecificUnit(source, source), RESOLVED_UNIT8,
|
| matcher: isInferStaticVariableTypesInUnitTask);
|
| - CompilationUnit unit = outputs[RESOLVED_UNIT9];
|
| + CompilationUnit unit = outputs[RESOLVED_UNIT8];
|
| VariableDeclaration declaration = AstFinder.getFieldInClass(unit, 'M', 'X');
|
| InterfaceType stringType = context.typeProvider.stringType;
|
| expect(declaration.element.type, stringType);
|
| @@ -2914,9 +2772,9 @@ class M {
|
| @(i $=
|
| ''');
|
| LibrarySpecificUnit target = new LibrarySpecificUnit(source, source);
|
| - computeResult(target, RESOLVED_UNIT9);
|
| - expect(outputs[RESOLVED_UNIT9], isNotNull);
|
| - expect(outputs[CREATED_RESOLVED_UNIT9], isTrue);
|
| + computeResult(target, RESOLVED_UNIT8);
|
| + expect(outputs[RESOLVED_UNIT8], isNotNull);
|
| + expect(outputs[CREATED_RESOLVED_UNIT8], isTrue);
|
| }
|
|
|
| void test_perform_nestedDeclarations() {
|
| @@ -2930,7 +2788,7 @@ var f = (int x) {
|
| return xSquared;
|
| };
|
| ''');
|
| - computeResult(new LibrarySpecificUnit(source, source), RESOLVED_UNIT9,
|
| + computeResult(new LibrarySpecificUnit(source, source), RESOLVED_UNIT8,
|
| matcher: isInferStaticVariableTypesInUnitTask);
|
| }
|
|
|
| @@ -2953,12 +2811,12 @@ var b = a;
|
| class M {}
|
| ''');
|
| computeResult(
|
| - new LibrarySpecificUnit(firstSource, firstSource), RESOLVED_UNIT9,
|
| + new LibrarySpecificUnit(firstSource, firstSource), RESOLVED_UNIT8,
|
| matcher: isInferStaticVariableTypesInUnitTask);
|
| - CompilationUnit firstUnit = outputs[RESOLVED_UNIT9];
|
| + CompilationUnit firstUnit = outputs[RESOLVED_UNIT8];
|
| computeResult(
|
| - new LibrarySpecificUnit(secondSource, secondSource), RESOLVED_UNIT9);
|
| - CompilationUnit secondUnit = outputs[RESOLVED_UNIT9];
|
| + new LibrarySpecificUnit(secondSource, secondSource), RESOLVED_UNIT8);
|
| + CompilationUnit secondUnit = outputs[RESOLVED_UNIT8];
|
|
|
| VariableDeclaration variableA =
|
| AstFinder.getTopLevelVariable(firstUnit, 'a');
|
| @@ -2987,9 +2845,9 @@ var Y = () {
|
| return 1 + X;
|
| };
|
| ''');
|
| - computeResult(new LibrarySpecificUnit(source, source), RESOLVED_UNIT9,
|
| + computeResult(new LibrarySpecificUnit(source, source), RESOLVED_UNIT8,
|
| matcher: isInferStaticVariableTypesInUnitTask);
|
| - CompilationUnit unit = outputs[RESOLVED_UNIT9];
|
| + CompilationUnit unit = outputs[RESOLVED_UNIT8];
|
| TopLevelVariableDeclaration declaration = unit.declarations[1];
|
| FunctionExpression function =
|
| declaration.variables.variables[0].initializer;
|
| @@ -3010,9 +2868,9 @@ var Y = () {
|
| var V = [42];
|
| ''');
|
| LibrarySpecificUnit target = new LibrarySpecificUnit(source, source);
|
| - computeResult(target, RESOLVED_UNIT9);
|
| - expect(outputs[RESOLVED_UNIT9], isNotNull);
|
| - expect(outputs[CREATED_RESOLVED_UNIT9], isTrue);
|
| + computeResult(target, RESOLVED_UNIT8);
|
| + expect(outputs[RESOLVED_UNIT8], isNotNull);
|
| + expect(outputs[CREATED_RESOLVED_UNIT8], isTrue);
|
| // An INFERRED_TYPE_LITERAL error should be generated.
|
| List<AnalysisError> errors = outputs[
|
| STATIC_VARIABLE_RESOLUTION_ERRORS_IN_UNIT] as List<AnalysisError>;
|
| @@ -3425,36 +3283,6 @@ class B {}''');
|
|
|
| @reflectiveTest
|
| class PartiallyResolveUnitReferencesTaskTest extends _AbstractDartTaskTest {
|
| - test_perform_propagable() {
|
| - enableStrongMode();
|
| - Source source = newSource(
|
| - '/test.dart',
|
| - '''
|
| -const t1 = 1;
|
| -final t2 = 2;
|
| -var t3 = 3;
|
| -final t4;
|
| -class C {
|
| - static const fs1 = 1;
|
| - static final fs2 = 2;
|
| - static var fs3 = 3;
|
| - static final fs4;
|
| - const fi1 = 1;
|
| - final fi2 = 2;
|
| - var fi3 = 3;
|
| - final fi4;
|
| -}
|
| -''');
|
| - LibrarySpecificUnit target = new LibrarySpecificUnit(source, source);
|
| - computeResult(target, PROPAGABLE_VARIABLES_IN_UNIT,
|
| - matcher: isPartiallyResolveUnitReferencesTask);
|
| - // PROPAGABLE_VARIABLES_IN_UNIT
|
| - List<VariableElement> variables =
|
| - outputs[PROPAGABLE_VARIABLES_IN_UNIT] as List<VariableElement>;
|
| - expect(variables.map((v) => v.displayName),
|
| - unorderedEquals(['t1', 't2', 'fs1', 'fs2', 'fi1', 'fi2']));
|
| - }
|
| -
|
| test_perform_strong_importExport() {
|
| newSource(
|
| '/a.dart',
|
| @@ -3597,138 +3425,6 @@ class C {
|
| }
|
|
|
| @reflectiveTest
|
| -class PropagateVariableTypesInUnitTaskTest extends _AbstractDartTaskTest {
|
| - test_created_resolved_unit() {
|
| - Source source = newSource(
|
| - '/test.dart',
|
| - r'''
|
| -library lib;
|
| -class A {}
|
| -''');
|
| - LibrarySpecificUnit target = new LibrarySpecificUnit(source, source);
|
| - computeResult(target, RESOLVED_UNIT8);
|
| - expect(outputs[RESOLVED_UNIT8], isNotNull);
|
| - expect(outputs[CREATED_RESOLVED_UNIT8], isTrue);
|
| - }
|
| -
|
| - void test_perform_cycle() {
|
| - AnalysisTarget source = newSource(
|
| - '/test.dart',
|
| - '''
|
| -final piFirst = true;
|
| -final pi = piFirst ? 3.14 : tau / 2;
|
| -final tau = piFirst ? pi * 2 : 6.28;
|
| -''');
|
| - // compute
|
| - computeResult(new LibrarySpecificUnit(source, source), RESOLVED_UNIT8,
|
| - matcher: isPropagateVariableTypesInUnitTask);
|
| - CompilationUnit unit = outputs[RESOLVED_UNIT8];
|
| - // verify
|
| - TopLevelVariableElement piFirst =
|
| - AstFinder.getTopLevelVariableElement(unit, 'piFirst');
|
| - TopLevelVariableElement pi =
|
| - AstFinder.getTopLevelVariableElement(unit, 'pi');
|
| - TopLevelVariableElement tau =
|
| - AstFinder.getTopLevelVariableElement(unit, 'tau');
|
| - expect(piFirst.propagatedType, context.typeProvider.boolType);
|
| - expect(pi.propagatedType, isNull);
|
| - expect(tau.propagatedType, isNull);
|
| - }
|
| -
|
| - void test_perform_topLevel() {
|
| - AnalysisTarget source = newSource(
|
| - '/test.dart',
|
| - '''
|
| -//final a = b + c.length;
|
| -final a = b;
|
| -final b = 1;
|
| -final c = '2';
|
| -''');
|
| - // compute
|
| - computeResult(new LibrarySpecificUnit(source, source), RESOLVED_UNIT8,
|
| - matcher: isPropagateVariableTypesInUnitTask);
|
| - CompilationUnit unit = outputs[RESOLVED_UNIT8];
|
| - // verify
|
| - InterfaceType intType = context.typeProvider.intType;
|
| - InterfaceType stringType = context.typeProvider.stringType;
|
| - expect(AstFinder.getTopLevelVariableElement(unit, 'a').propagatedType,
|
| - intType);
|
| - expect(AstFinder.getTopLevelVariableElement(unit, 'b').propagatedType,
|
| - intType);
|
| - expect(AstFinder.getTopLevelVariableElement(unit, 'c').propagatedType,
|
| - stringType);
|
| - }
|
| -}
|
| -
|
| -@reflectiveTest
|
| -class PropagateVariableTypeTaskTest extends _AbstractDartTaskTest {
|
| - void test_perform_cycle() {
|
| - AnalysisTarget source = newSource(
|
| - '/test.dart',
|
| - '''
|
| -final piFirst = true;
|
| -final pi = piFirst ? 3.14 : tau / 2;
|
| -final tau = piFirst ? pi * 2 : 6.28;
|
| -''');
|
| - computeResult(new LibrarySpecificUnit(source, source), RESOLVED_UNIT7);
|
| - CompilationUnit unit = outputs[RESOLVED_UNIT7];
|
| - TopLevelVariableElement piFirst =
|
| - AstFinder.getTopLevelVariableElement(unit, 'piFirst');
|
| - TopLevelVariableElement pi =
|
| - AstFinder.getTopLevelVariableElement(unit, 'pi');
|
| - TopLevelVariableElement tau =
|
| - AstFinder.getTopLevelVariableElement(unit, 'tau');
|
| - // compute
|
| - computeResult(piFirst, PROPAGATED_VARIABLE,
|
| - matcher: isPropagateVariableTypeTask);
|
| - expect(piFirst.propagatedType, context.typeProvider.boolType);
|
| - expect(pi.propagatedType, isNull);
|
| - expect(tau.propagatedType, isNull);
|
| - }
|
| -
|
| - void test_perform_null() {
|
| - enableStrongMode();
|
| - AnalysisTarget source = newSource(
|
| - '/test.dart',
|
| - '''
|
| -var a = null;
|
| -''');
|
| - computeResult(new LibrarySpecificUnit(source, source), RESOLVED_UNIT7);
|
| - CompilationUnit unit = outputs[RESOLVED_UNIT7];
|
| - TopLevelVariableElement a = AstFinder.getTopLevelVariableElement(unit, 'a');
|
| - // compute
|
| - computeResult(a, PROPAGATED_VARIABLE, matcher: isPropagateVariableTypeTask);
|
| - expect(a.propagatedType, isNull);
|
| - }
|
| -
|
| - void test_perform_topLevel() {
|
| - AnalysisTarget source = newSource(
|
| - '/test.dart',
|
| - '''
|
| -final a = b + c.length;
|
| -final b = 1;
|
| -final c = '2';
|
| -''');
|
| - computeResult(new LibrarySpecificUnit(source, source), RESOLVED_UNIT7);
|
| - CompilationUnit unit = outputs[RESOLVED_UNIT7];
|
| - TopLevelVariableElement elementA =
|
| - AstFinder.getTopLevelVariableElement(unit, 'a');
|
| - TopLevelVariableElement elementB =
|
| - AstFinder.getTopLevelVariableElement(unit, 'b');
|
| - TopLevelVariableElement elementC =
|
| - AstFinder.getTopLevelVariableElement(unit, 'c');
|
| - // compute
|
| - computeResult(elementA, PROPAGATED_VARIABLE,
|
| - matcher: isPropagateVariableTypeTask);
|
| - InterfaceType intType = context.typeProvider.intType;
|
| - InterfaceType stringType = context.typeProvider.stringType;
|
| - expect(elementA.propagatedType, intType);
|
| - expect(elementB.propagatedType, intType);
|
| - expect(elementC.propagatedType, stringType);
|
| - }
|
| -}
|
| -
|
| -@reflectiveTest
|
| class ReferencedNamesBuilderTest extends _AbstractDartTaskTest {
|
| void setUp() {
|
| super.setUp();
|
| @@ -4257,9 +3953,9 @@ library lib;
|
| class A {}
|
| ''');
|
| LibrarySpecificUnit target = new LibrarySpecificUnit(source, source);
|
| - computeResult(target, RESOLVED_UNIT10);
|
| - expect(outputs[RESOLVED_UNIT10], isNotNull);
|
| - expect(outputs[CREATED_RESOLVED_UNIT10], isTrue);
|
| + computeResult(target, RESOLVED_UNIT9);
|
| + expect(outputs[RESOLVED_UNIT9], isNotNull);
|
| + expect(outputs[CREATED_RESOLVED_UNIT9], isTrue);
|
| }
|
|
|
| // Test inference of instance fields across units
|
| @@ -4289,16 +3985,16 @@ class A {}
|
| DartType dynamicType = context.typeProvider.dynamicType;
|
|
|
| computeResult(
|
| - new LibrarySpecificUnit(sources[1], sources[1]), RESOLVED_UNIT10);
|
| - CompilationUnit unit1 = outputs[RESOLVED_UNIT10];
|
| + new LibrarySpecificUnit(sources[1], sources[1]), RESOLVED_UNIT9);
|
| + CompilationUnit unit1 = outputs[RESOLVED_UNIT9];
|
|
|
| // B.b2 shoud be resolved on the rhs, but not yet inferred.
|
| assertVariableDeclarationTypes(
|
| AstFinder.getFieldInClass(unit1, "B", "b2"), dynamicType, intType);
|
|
|
| computeResult(
|
| - new LibrarySpecificUnit(sources[0], sources[0]), RESOLVED_UNIT10);
|
| - CompilationUnit unit0 = outputs[RESOLVED_UNIT10];
|
| + new LibrarySpecificUnit(sources[0], sources[0]), RESOLVED_UNIT9);
|
| + CompilationUnit unit0 = outputs[RESOLVED_UNIT9];
|
|
|
| // B.b2 should now be fully resolved and inferred.
|
| assertVariableDeclarationTypes(
|
| @@ -4309,7 +4005,7 @@ class A {}
|
| AstFinder.getFieldInClass(unit0, "A", "a2"), dynamicType, intType);
|
|
|
| computeResult(
|
| - new LibrarySpecificUnit(sources[2], sources[2]), RESOLVED_UNIT10);
|
| + new LibrarySpecificUnit(sources[2], sources[2]), RESOLVED_UNIT9);
|
|
|
| // A.a2 should now be fully resolved and inferred.
|
| assertVariableDeclarationTypes(
|
| @@ -4346,15 +4042,15 @@ class A {}
|
| DartType dynamicType = context.typeProvider.dynamicType;
|
|
|
| computeResult(
|
| - new LibrarySpecificUnit(sources[0], sources[0]), RESOLVED_UNIT10);
|
| - CompilationUnit unit0 = outputs[RESOLVED_UNIT10];
|
| + new LibrarySpecificUnit(sources[0], sources[0]), RESOLVED_UNIT9);
|
| + CompilationUnit unit0 = outputs[RESOLVED_UNIT9];
|
|
|
| // A.a2 should now be resolved on the rhs, but not yet inferred.
|
| assertVariableDeclarationTypes(
|
| AstFinder.getFieldInClass(unit0, "A", "a2"), dynamicType, dynamicType);
|
|
|
| computeResult(
|
| - new LibrarySpecificUnit(sources[2], sources[2]), RESOLVED_UNIT10);
|
| + new LibrarySpecificUnit(sources[2], sources[2]), RESOLVED_UNIT9);
|
|
|
| // A.a2 should now be fully resolved and inferred (but not re-resolved).
|
| assertVariableDeclarationTypes(
|
| @@ -4392,8 +4088,8 @@ class A {}
|
| DartType dynamicType = context.typeProvider.dynamicType;
|
|
|
| computeResult(
|
| - new LibrarySpecificUnit(sources[1], sources[1]), RESOLVED_UNIT10);
|
| - CompilationUnit unit1 = outputs[RESOLVED_UNIT10];
|
| + new LibrarySpecificUnit(sources[1], sources[1]), RESOLVED_UNIT9);
|
| + CompilationUnit unit1 = outputs[RESOLVED_UNIT9];
|
|
|
| assertVariableDeclarationTypes(
|
| AstFinder.getFieldInClass(unit1, "B", "b1"), intType, intType);
|
| @@ -4401,8 +4097,8 @@ class A {}
|
| AstFinder.getFieldInClass(unit1, "B", "b2"), dynamicType, intType);
|
|
|
| computeResult(
|
| - new LibrarySpecificUnit(sources[0], sources[0]), RESOLVED_UNIT10);
|
| - CompilationUnit unit0 = outputs[RESOLVED_UNIT10];
|
| + new LibrarySpecificUnit(sources[0], sources[0]), RESOLVED_UNIT9);
|
| + CompilationUnit unit0 = outputs[RESOLVED_UNIT9];
|
|
|
| assertVariableDeclarationTypes(
|
| AstFinder.getFieldInClass(unit0, "A", "a1"), intType, intType);
|
| @@ -4415,7 +4111,7 @@ class A {}
|
| AstFinder.getFieldInClass(unit1, "B", "b2"), intType, intType);
|
|
|
| computeResult(
|
| - new LibrarySpecificUnit(sources[2], sources[2]), RESOLVED_UNIT10);
|
| + new LibrarySpecificUnit(sources[2], sources[2]), RESOLVED_UNIT9);
|
|
|
| assertVariableDeclarationTypes(
|
| AstFinder.getFieldInClass(unit0, "A", "a1"), intType, intType);
|
| @@ -4454,8 +4150,8 @@ class A {}
|
| DartType dynamicType = context.typeProvider.dynamicType;
|
|
|
| computeResult(
|
| - new LibrarySpecificUnit(sources[0], sources[0]), RESOLVED_UNIT10);
|
| - CompilationUnit unit0 = outputs[RESOLVED_UNIT10];
|
| + new LibrarySpecificUnit(sources[0], sources[0]), RESOLVED_UNIT9);
|
| + CompilationUnit unit0 = outputs[RESOLVED_UNIT9];
|
|
|
| // A.a2 should now be resolved on the rhs, but not yet inferred.
|
| assertVariableDeclarationTypes(
|
| @@ -4466,7 +4162,7 @@ class A {}
|
| AstFinder.getFieldInClass(unit0, "B", "b2"), dynamicType, intType);
|
|
|
| computeResult(
|
| - new LibrarySpecificUnit(sources[1], sources[1]), RESOLVED_UNIT10);
|
| + new LibrarySpecificUnit(sources[1], sources[1]), RESOLVED_UNIT9);
|
|
|
| // A.a2 should now be fully resolved and inferred (but not re-resolved).
|
| assertVariableDeclarationTypes(
|
| @@ -4703,9 +4399,9 @@ library lib;
|
| class A {}
|
| ''');
|
| LibrarySpecificUnit target = new LibrarySpecificUnit(source, source);
|
| - computeResult(target, RESOLVED_UNIT12);
|
| - expect(outputs[RESOLVED_UNIT12], isNotNull);
|
| - expect(outputs[CREATED_RESOLVED_UNIT12], isTrue);
|
| + computeResult(target, RESOLVED_UNIT11);
|
| + expect(outputs[RESOLVED_UNIT11], isNotNull);
|
| + expect(outputs[CREATED_RESOLVED_UNIT11], isTrue);
|
| }
|
|
|
| void test_perform() {
|
| @@ -4722,9 +4418,9 @@ class C {
|
| }
|
| }
|
| ''');
|
| - computeResult(new LibrarySpecificUnit(source, source), RESOLVED_UNIT12,
|
| + computeResult(new LibrarySpecificUnit(source, source), RESOLVED_UNIT11,
|
| matcher: isResolveUnitTask);
|
| - CompilationUnit unit = outputs[RESOLVED_UNIT12];
|
| + CompilationUnit unit = outputs[RESOLVED_UNIT11];
|
|
|
| FunctionDeclaration f = unit.declarations[0];
|
| _assertResolved(f.functionExpression.body);
|
| @@ -4735,33 +4431,6 @@ class C {
|
| expect(outputs[RESOLVE_UNIT_ERRORS], hasLength(0));
|
| }
|
|
|
| - void test_perform_ensurePropagatedVariableTypes() {
|
| - newSource(
|
| - '/lib.dart',
|
| - '''
|
| -class A {
|
| - final v = 1;
|
| -}
|
| -''');
|
| - AnalysisTarget source = newSource(
|
| - '/test.dart',
|
| - '''
|
| -import 'lib.dart';
|
| -main(A a) {
|
| - a.v.isEven;
|
| -}
|
| -''');
|
| - computeResult(new LibrarySpecificUnit(source, source), RESOLVED_UNIT12,
|
| - matcher: isResolveUnitTask);
|
| - expect(outputs[RESOLVE_UNIT_ERRORS], hasLength(0));
|
| - CompilationUnit unit = outputs[RESOLVED_UNIT12];
|
| - FunctionDeclaration main = unit.declarations[0];
|
| - BlockFunctionBody body = main.functionExpression.body;
|
| - ExpressionStatement statement = body.block.statements.single;
|
| - Expression expression = statement.expression;
|
| - expect(expression.bestType, context.typeProvider.boolType);
|
| - }
|
| -
|
| void _assertResolved(FunctionBody body) {
|
| ResolutionVerifier verifier = new ResolutionVerifier();
|
| body.accept(verifier);
|
| @@ -5056,8 +4725,8 @@ var piFirst = true;
|
| var pi = piFirst ? 3.14 : tau / 2;
|
| var tau = piFirst ? pi * 2 : 6.28;
|
| ''');
|
| - computeResult(new LibrarySpecificUnit(source, source), RESOLVED_UNIT12);
|
| - CompilationUnit unit = outputs[RESOLVED_UNIT12];
|
| + computeResult(new LibrarySpecificUnit(source, source), RESOLVED_UNIT11);
|
| + CompilationUnit unit = outputs[RESOLVED_UNIT11];
|
| VariableElement piFirst =
|
| AstFinder.getTopLevelVariable(unit, 'piFirst').name.staticElement;
|
| VariableElement pi =
|
| @@ -5099,11 +4768,11 @@ var tau = piFirst ? pi * 2 : 6.28;
|
| }
|
| ''');
|
| computeResult(
|
| - new LibrarySpecificUnit(firstSource, firstSource), RESOLVED_UNIT12);
|
| - CompilationUnit unit1 = outputs[RESOLVED_UNIT12];
|
| + new LibrarySpecificUnit(firstSource, firstSource), RESOLVED_UNIT11);
|
| + CompilationUnit unit1 = outputs[RESOLVED_UNIT11];
|
| computeResult(
|
| - new LibrarySpecificUnit(secondSource, secondSource), RESOLVED_UNIT12);
|
| - CompilationUnit unit2 = outputs[RESOLVED_UNIT12];
|
| + new LibrarySpecificUnit(secondSource, secondSource), RESOLVED_UNIT11);
|
| + CompilationUnit unit2 = outputs[RESOLVED_UNIT11];
|
|
|
| InterfaceType intType = context.typeProvider.intType;
|
|
|
| @@ -5150,7 +4819,7 @@ var tau = piFirst ? pi * 2 : 6.28;
|
| '''
|
| });
|
| List<dynamic> units =
|
| - computeLibraryResults(sources, RESOLVED_UNIT12).toList();
|
| + computeLibraryResults(sources, RESOLVED_UNIT11).toList();
|
| CompilationUnit unit0 = units[0];
|
| CompilationUnit unit1 = units[1];
|
| CompilationUnit unit2 = units[2];
|
| @@ -5197,7 +4866,7 @@ var tau = piFirst ? pi * 2 : 6.28;
|
| '''
|
| });
|
| List<dynamic> units =
|
| - computeLibraryResults(sources, RESOLVED_UNIT12).toList();
|
| + computeLibraryResults(sources, RESOLVED_UNIT11).toList();
|
| CompilationUnit unit0 = units[0];
|
| CompilationUnit unit2 = units[2];
|
|
|
| @@ -5238,11 +4907,11 @@ var tau = piFirst ? pi * 2 : 6.28;
|
| }
|
| ''');
|
| computeResult(
|
| - new LibrarySpecificUnit(firstSource, firstSource), RESOLVED_UNIT12);
|
| - CompilationUnit unit1 = outputs[RESOLVED_UNIT12];
|
| + new LibrarySpecificUnit(firstSource, firstSource), RESOLVED_UNIT11);
|
| + CompilationUnit unit1 = outputs[RESOLVED_UNIT11];
|
| computeResult(
|
| - new LibrarySpecificUnit(secondSource, secondSource), RESOLVED_UNIT12);
|
| - CompilationUnit unit2 = outputs[RESOLVED_UNIT12];
|
| + new LibrarySpecificUnit(secondSource, secondSource), RESOLVED_UNIT11);
|
| + CompilationUnit unit2 = outputs[RESOLVED_UNIT11];
|
|
|
| InterfaceType intType = context.typeProvider.intType;
|
| InterfaceType stringType = context.typeProvider.stringType;
|
| @@ -5292,7 +4961,7 @@ var tau = piFirst ? pi * 2 : 6.28;
|
| '''
|
| });
|
| List<dynamic> units =
|
| - computeLibraryResults(sources, RESOLVED_UNIT12).toList();
|
| + computeLibraryResults(sources, RESOLVED_UNIT11).toList();
|
| CompilationUnit unit0 = units[0];
|
| CompilationUnit unit1 = units[1];
|
| CompilationUnit unit2 = units[2];
|
| @@ -5328,8 +4997,8 @@ var tau = piFirst ? pi * 2 : 6.28;
|
| y = "hi";
|
| }
|
| ''');
|
| - computeResult(new LibrarySpecificUnit(source, source), RESOLVED_UNIT12);
|
| - CompilationUnit unit = outputs[RESOLVED_UNIT12];
|
| + computeResult(new LibrarySpecificUnit(source, source), RESOLVED_UNIT11);
|
| + CompilationUnit unit = outputs[RESOLVED_UNIT11];
|
|
|
| InterfaceType intType = context.typeProvider.intType;
|
| InterfaceType stringType = context.typeProvider.stringType;
|
| @@ -5367,8 +5036,8 @@ var tau = piFirst ? pi * 2 : 6.28;
|
| final z = 42; // should infer `int`
|
| }
|
| ''');
|
| - computeResult(new LibrarySpecificUnit(source, source), RESOLVED_UNIT12);
|
| - CompilationUnit unit = outputs[RESOLVED_UNIT12];
|
| + computeResult(new LibrarySpecificUnit(source, source), RESOLVED_UNIT11);
|
| + CompilationUnit unit = outputs[RESOLVED_UNIT11];
|
|
|
| InterfaceType intType = context.typeProvider.intType;
|
| InterfaceType stringType = context.typeProvider.stringType;
|
| @@ -5416,8 +5085,8 @@ var tau = piFirst ? pi * 2 : 6.28;
|
| int y = 0; // field def after use
|
| final z = 42; // should infer `int`
|
| ''');
|
| - computeResult(new LibrarySpecificUnit(source, source), RESOLVED_UNIT12);
|
| - CompilationUnit unit = outputs[RESOLVED_UNIT12];
|
| + computeResult(new LibrarySpecificUnit(source, source), RESOLVED_UNIT11);
|
| + CompilationUnit unit = outputs[RESOLVED_UNIT11];
|
|
|
| InterfaceType intType = context.typeProvider.intType;
|
| InterfaceType stringType = context.typeProvider.stringType;
|
| @@ -5469,8 +5138,8 @@ var tau = piFirst ? pi * 2 : 6.28;
|
| new A().y2 = /*severe:StaticTypeError*/"hi";
|
| }
|
| ''');
|
| - computeResult(new LibrarySpecificUnit(source, source), RESOLVED_UNIT12);
|
| - CompilationUnit unit = outputs[RESOLVED_UNIT12];
|
| + computeResult(new LibrarySpecificUnit(source, source), RESOLVED_UNIT11);
|
| + CompilationUnit unit = outputs[RESOLVED_UNIT11];
|
|
|
| InterfaceType intType = context.typeProvider.intType;
|
| InterfaceType stringType = context.typeProvider.stringType;
|
| @@ -5511,8 +5180,8 @@ var tau = piFirst ? pi * 2 : 6.28;
|
| x = "hi";
|
| }
|
| ''');
|
| - computeResult(new LibrarySpecificUnit(source, source), RESOLVED_UNIT12);
|
| - CompilationUnit unit = outputs[RESOLVED_UNIT12];
|
| + computeResult(new LibrarySpecificUnit(source, source), RESOLVED_UNIT11);
|
| + CompilationUnit unit = outputs[RESOLVED_UNIT11];
|
|
|
| InterfaceType intType = context.typeProvider.intType;
|
| InterfaceType stringType = context.typeProvider.stringType;
|
|
|