| 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 669b909258a07fc0a3e9022e043b2931a842ee40..fd4fee224db9f1cb3136abcb1b00417dd3562528 100644
|
| --- a/pkg/analyzer/test/src/task/dart_test.dart
|
| +++ b/pkg/analyzer/test/src/task/dart_test.dart
|
| @@ -4,10 +4,12 @@
|
|
|
| library analyzer.test.src.task.dart_test;
|
|
|
| +import 'package:analyzer/dart/element/element.dart';
|
| +import 'package:analyzer/dart/element/type.dart';
|
| import 'package:analyzer/src/context/cache.dart';
|
| +import 'package:analyzer/src/dart/element/element.dart';
|
| import 'package:analyzer/src/generated/ast.dart';
|
| import 'package:analyzer/src/generated/constant.dart';
|
| -import 'package:analyzer/src/generated/element.dart';
|
| import 'package:analyzer/src/generated/engine.dart'
|
| show AnalysisOptionsImpl, CacheState;
|
| import 'package:analyzer/src/generated/error.dart';
|
| @@ -1429,62 +1431,6 @@ library my_lib1;
|
| expect(outputs[LIBRARY_CYCLE], hasLength(1));
|
| }
|
|
|
| - void test_library_cycle_override_inference_incremental() {
|
| - enableStrongMode();
|
| - Source lib1Source = newSource(
|
| - '/my_lib1.dart',
|
| - '''
|
| -library my_lib1;
|
| -import 'my_lib3.dart';
|
| -''');
|
| - Source lib2Source = newSource(
|
| - '/my_lib2.dart',
|
| - '''
|
| -library my_lib2;
|
| -import 'my_lib1.dart';
|
| -''');
|
| - Source lib3Source = newSource(
|
| - '/my_lib3.dart',
|
| - '''
|
| -library my_lib3;
|
| -import 'my_lib2.dart';
|
| -
|
| -class A {
|
| - int foo(int x) => null;
|
| -}
|
| -class B extends A {
|
| - foo(x) => null;
|
| -}
|
| -''');
|
| - AnalysisTarget lib1Target = new LibrarySpecificUnit(lib1Source, lib1Source);
|
| - AnalysisTarget lib2Target = new LibrarySpecificUnit(lib2Source, lib2Source);
|
| - AnalysisTarget lib3Target = new LibrarySpecificUnit(lib3Source, lib3Source);
|
| -
|
| - computeResult(lib1Target, RESOLVED_UNIT);
|
| - computeResult(lib2Target, RESOLVED_UNIT);
|
| - computeResult(lib3Target, RESOLVED_UNIT);
|
| - CompilationUnit unit = outputs[RESOLVED_UNIT];
|
| - ClassElement b = unit.declarations[1].element;
|
| - expect(b.getMethod('foo').returnType.toString(), 'int');
|
| -
|
| - // add a dummy edit.
|
| - context.setContents(
|
| - lib1Source,
|
| - '''
|
| -library my_lib1;
|
| -import 'my_lib3.dart';
|
| -var foo = 123;
|
| -''');
|
| -
|
| - computeResult(lib1Target, RESOLVED_UNIT);
|
| - computeResult(lib2Target, RESOLVED_UNIT);
|
| - computeResult(lib3Target, RESOLVED_UNIT);
|
| - unit = outputs[RESOLVED_UNIT];
|
| - b = unit.declarations[1].element;
|
| - expect(b.getMethod('foo').returnType.toString(), 'int',
|
| - reason: 'edit should not affect member inference');
|
| - }
|
| -
|
| void test_library_cycle_incremental_partial() {
|
| enableStrongMode();
|
| Source lib1Source = newSource(
|
| @@ -1594,6 +1540,62 @@ import 'a.dart';
|
| expect(dep2, hasLength(1)); // dart:core
|
| }
|
|
|
| + void test_library_cycle_override_inference_incremental() {
|
| + enableStrongMode();
|
| + Source lib1Source = newSource(
|
| + '/my_lib1.dart',
|
| + '''
|
| +library my_lib1;
|
| +import 'my_lib3.dart';
|
| +''');
|
| + Source lib2Source = newSource(
|
| + '/my_lib2.dart',
|
| + '''
|
| +library my_lib2;
|
| +import 'my_lib1.dart';
|
| +''');
|
| + Source lib3Source = newSource(
|
| + '/my_lib3.dart',
|
| + '''
|
| +library my_lib3;
|
| +import 'my_lib2.dart';
|
| +
|
| +class A {
|
| + int foo(int x) => null;
|
| +}
|
| +class B extends A {
|
| + foo(x) => null;
|
| +}
|
| +''');
|
| + AnalysisTarget lib1Target = new LibrarySpecificUnit(lib1Source, lib1Source);
|
| + AnalysisTarget lib2Target = new LibrarySpecificUnit(lib2Source, lib2Source);
|
| + AnalysisTarget lib3Target = new LibrarySpecificUnit(lib3Source, lib3Source);
|
| +
|
| + computeResult(lib1Target, RESOLVED_UNIT);
|
| + computeResult(lib2Target, RESOLVED_UNIT);
|
| + computeResult(lib3Target, RESOLVED_UNIT);
|
| + CompilationUnit unit = outputs[RESOLVED_UNIT];
|
| + ClassElement b = unit.declarations[1].element;
|
| + expect(b.getMethod('foo').returnType.toString(), 'int');
|
| +
|
| + // add a dummy edit.
|
| + context.setContents(
|
| + lib1Source,
|
| + '''
|
| +library my_lib1;
|
| +import 'my_lib3.dart';
|
| +var foo = 123;
|
| +''');
|
| +
|
| + computeResult(lib1Target, RESOLVED_UNIT);
|
| + computeResult(lib2Target, RESOLVED_UNIT);
|
| + computeResult(lib3Target, RESOLVED_UNIT);
|
| + unit = outputs[RESOLVED_UNIT];
|
| + b = unit.declarations[1].element;
|
| + expect(b.getMethod('foo').returnType.toString(), 'int',
|
| + reason: 'edit should not affect member inference');
|
| + }
|
| +
|
| void test_library_cycle_self_loop() {
|
| List<Source> sources = newSources({
|
| '/a.dart': '''
|
|
|