Migrate pkg/analysis_server/test/integration/analysis/
Change-Id: I6dc636c06e13d1ac1da6caf2e33443baca08315d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194001
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/analysis_server/lib/src/domain_analysis.dart b/pkg/analysis_server/lib/src/domain_analysis.dart
index a34a056..a9b8464 100644
--- a/pkg/analysis_server/lib/src/domain_analysis.dart
+++ b/pkg/analysis_server/lib/src/domain_analysis.dart
@@ -12,6 +12,7 @@
import 'package:analysis_server/src/computer/computer_signature.dart';
import 'package:analysis_server/src/computer/imported_elements_computer.dart';
import 'package:analysis_server/src/domain_abstract.dart';
+import 'package:analysis_server/src/domain_analysis_flags.dart';
import 'package:analysis_server/src/plugin/request_converter.dart';
import 'package:analysis_server/src/plugin/result_merger.dart';
import 'package:analysis_server/src/protocol/protocol_internal.dart';
@@ -22,9 +23,6 @@
import 'package:analyzer_plugin/src/utilities/navigation/navigation.dart';
import 'package:analyzer_plugin/utilities/navigation/navigation_dart.dart';
-// TODO(devoncarew): See #31456 for the tracking issue to remove this flag.
-final bool disableManageImportsOnPaste = true;
-
/// Instances of the class [AnalysisDomainHandler] implement a [RequestHandler]
/// that handles requests in the `analysis` domain.
class AnalysisDomainHandler extends AbstractRequestHandler {
diff --git a/pkg/analysis_server/lib/src/domain_analysis_flags.dart b/pkg/analysis_server/lib/src/domain_analysis_flags.dart
new file mode 100644
index 0000000..c1196be
--- /dev/null
+++ b/pkg/analysis_server/lib/src/domain_analysis_flags.dart
@@ -0,0 +1,6 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// TODO(devoncarew): See #31456 for the tracking issue to remove this flag.
+final bool disableManageImportsOnPaste = true;
diff --git a/pkg/analysis_server/test/integration/analysis/analysis_options_test.dart b/pkg/analysis_server/test/integration/analysis/analysis_options_test.dart
index d0afbc3..5033928 100644
--- a/pkg/analysis_server/test/integration/analysis/analysis_options_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/analysis_options_test.dart
@@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-// @dart = 2.9
-
import 'package:analyzer/src/util/file_paths.dart' as file_paths;
import 'package:analyzer_plugin/protocol/protocol_common.dart';
import 'package:test/test.dart';
@@ -38,7 +36,7 @@
await analysisFinished;
expect(currentAnalysisErrors[options], isList);
- var errors = currentAnalysisErrors[options];
+ var errors = existingErrorsForFile(options);
expect(errors, hasLength(1));
var error = errors[0];
expect(error.location.file, options);
diff --git a/pkg/analysis_server/test/integration/analysis/error_test.dart b/pkg/analysis_server/test/integration/analysis/error_test.dart
index b5d5fb7..e674a76 100644
--- a/pkg/analysis_server/test/integration/analysis/error_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/error_test.dart
@@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-// @dart = 2.9
-
import 'package:analysis_server/protocol/protocol_generated.dart';
import 'package:analyzer_plugin/protocol/protocol_common.dart';
import 'package:test/test.dart';
@@ -33,7 +31,7 @@
await analysisFinished;
expect(currentAnalysisErrors[filePath], isList);
- var errors = currentAnalysisErrors[filePath];
+ var errors = existingErrorsForFile(filePath);
expect(errors, hasLength(1));
expect(errors[0].location.file, equals(filePath));
}
@@ -47,7 +45,7 @@
standardAnalysisSetup();
return analysisFinished.then((_) {
expect(currentAnalysisErrors[pathname], isList);
- var errors = currentAnalysisErrors[pathname];
+ var errors = existingErrorsForFile(pathname);
expect(errors, hasLength(1));
expect(errors[0].location.file, equals(pathname));
});
diff --git a/pkg/analysis_server/test/integration/analysis/get_errors_non_standard_sdk_test.dart b/pkg/analysis_server/test/integration/analysis/get_errors_non_standard_sdk_test.dart
index 1b0de2d..fb8cb1e 100644
--- a/pkg/analysis_server/test/integration/analysis/get_errors_non_standard_sdk_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/get_errors_non_standard_sdk_test.dart
@@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-// @dart = 2.9
-
import 'dart:io';
import 'package:path/path.dart' as path;
@@ -78,7 +76,7 @@
}
@override
- Future startServer({int diagnosticPort, int servicesPort}) {
+ Future startServer({int? diagnosticPort, int? servicesPort}) {
var sdkPath = createNonStandardSdk();
return server.start(
diagnosticPort: diagnosticPort,
@@ -95,7 +93,7 @@
writeFile(pathname, text);
standardAnalysisSetup();
await analysisFinished;
- var errors = currentAnalysisErrors[pathname];
+ var errors = existingErrorsForFile(pathname);
expect(errors, hasLength(1));
expect(errors[0].code, 'unused_import');
}
diff --git a/pkg/analysis_server/test/integration/analysis/get_errors_test.dart b/pkg/analysis_server/test/integration/analysis/get_errors_test.dart
index 61d8b52..260cb6c 100644
--- a/pkg/analysis_server/test/integration/analysis/get_errors_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/get_errors_test.dart
@@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-// @dart = 2.9
-
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
diff --git a/pkg/analysis_server/test/integration/analysis/get_hover_test.dart b/pkg/analysis_server/test/integration/analysis/get_hover_test.dart
index 6da5c92..2c4828c 100644
--- a/pkg/analysis_server/test/integration/analysis/get_hover_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/get_hover_test.dart
@@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-// @dart = 2.9
-
import 'package:analysis_server/protocol/protocol_generated.dart';
import 'package:path/path.dart' as path;
import 'package:test/test.dart';
@@ -21,7 +19,7 @@
class AnalysisGetHoverIntegrationTest
extends AbstractAnalysisServerIntegrationTest {
/// Pathname of the file containing Dart code.
- String pathname;
+ late String pathname;
/// Dart code under test.
final String text = r'''
@@ -55,17 +53,17 @@
/// literal value. [parameterRegexps] means is a set of regexps which should
/// match the hover parameters. [propagatedType], if specified, is the
/// expected propagated type of the element.
- Future<AnalysisGetHoverResult> checkHover(
+ Future<AnalysisGetHoverResult?> checkHover(
String target,
int length,
- List<String> descriptionRegexps,
- String kind,
- List<String> staticTypeRegexps, {
+ List<String>? descriptionRegexps,
+ String? kind,
+ List<String>? staticTypeRegexps, {
bool isLocal = false,
bool isCore = false,
- String docRegexp,
+ String? docRegexp,
bool isLiteral = false,
- List<String> parameterRegexps,
+ List<String>? parameterRegexps,
}) {
var offset = text.indexOf(target);
return sendAnalysisGetHover(pathname, offset).then((result) async {
@@ -74,7 +72,7 @@
expect(info.offset, equals(offset));
expect(info.length, equals(length));
if (isCore) {
- expect(path.basename(info.containingLibraryPath), equals('core.dart'));
+ expect(path.basename(info.containingLibraryPath!), equals('core.dart'));
expect(info.containingLibraryName, equals('dart:core'));
} else if (isLocal || isLiteral) {
expect(info.containingLibraryPath, isNull);
diff --git a/pkg/analysis_server/test/integration/analysis/get_imported_elements_test.dart b/pkg/analysis_server/test/integration/analysis/get_imported_elements_test.dart
index 6aac49a..547b6d9 100644
--- a/pkg/analysis_server/test/integration/analysis/get_imported_elements_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/get_imported_elements_test.dart
@@ -2,10 +2,8 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-// @dart = 2.9
-
import 'package:analysis_server/protocol/protocol_generated.dart';
-import 'package:analysis_server/src/domain_analysis.dart';
+import 'package:analysis_server/src/domain_analysis_flags.dart';
import 'package:path/path.dart' as path;
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -22,10 +20,10 @@
class AnalysisGetImportedElementsIntegrationTest
extends AbstractAnalysisServerIntegrationTest {
/// Pathname of the file containing Dart code.
- String pathname;
+ late String pathname;
/// Dart code under test.
- String text;
+ late String text;
/// Check that an analysis.getImportedElements request on the region starting
/// with the first character that matches [target] and having the given
diff --git a/pkg/analysis_server/test/integration/analysis/get_library_dependencies_test.dart b/pkg/analysis_server/test/integration/analysis/get_library_dependencies_test.dart
index ff3fd0f..caf757e 100644
--- a/pkg/analysis_server/test/integration/analysis/get_library_dependencies_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/get_library_dependencies_test.dart
@@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-// @dart = 2.9
-
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -41,7 +39,7 @@
expect(libraries.any((String lib) => lib.endsWith('core/core.dart')), true);
expect(packageMaps.keys, hasLength(1));
- var map = packageMaps[packageMaps.keys.first];
+ var map = packageMaps[packageMaps.keys.first]!;
expect(map.keys, isEmpty);
}
}
diff --git a/pkg/analysis_server/test/integration/analysis/get_navigation_test.dart b/pkg/analysis_server/test/integration/analysis/get_navigation_test.dart
index fc0a57b..1288adb 100644
--- a/pkg/analysis_server/test/integration/analysis/get_navigation_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/get_navigation_test.dart
@@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-// @dart = 2.9
-
import 'package:analyzer_plugin/protocol/protocol_common.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
diff --git a/pkg/analysis_server/test/integration/analysis/get_reachable_sources_test.dart b/pkg/analysis_server/test/integration/analysis/get_reachable_sources_test.dart
index 15309a6..0073bde 100644
--- a/pkg/analysis_server/test/integration/analysis/get_reachable_sources_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/get_reachable_sources_test.dart
@@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-// @dart = 2.9
-
import 'dart:io';
import 'package:test/test.dart';
diff --git a/pkg/analysis_server/test/integration/analysis/highlights_test.dart b/pkg/analysis_server/test/integration/analysis/highlights_test.dart
index c4c8fe2..cb5baf6 100644
--- a/pkg/analysis_server/test/integration/analysis/highlights_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/highlights_test.dart
@@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-// @dart = 2.9
-
import 'package:analysis_server/protocol/protocol_generated.dart';
import 'package:analyzer_plugin/protocol/protocol_common.dart';
import 'package:test/test.dart';
@@ -19,7 +17,7 @@
@reflectiveTest
class AnalysisHighlightsTest extends AbstractAnalysisServerIntegrationTest {
- Map<HighlightRegionType, Set<String>> highlights;
+ late Map<HighlightRegionType, Set<String>> highlights;
void check(HighlightRegionType type, List<String> expected) {
expect(highlights[type], equals(expected.toSet()));
@@ -41,10 +39,7 @@
var endIndex = startIndex + region.length;
var highlightedText = text.substring(startIndex, endIndex);
var type = region.type;
- if (!highlights.containsKey(type)) {
- highlights[type] = <String>{};
- }
- highlights[type].add(highlightedText);
+ highlights.putIfAbsent(type, () => {}).add(highlightedText);
}
});
await analysisFinished;
@@ -52,8 +47,8 @@
@override
Future startServer({
- int diagnosticPort,
- int servicesPort,
+ int? diagnosticPort,
+ int? servicesPort,
}) {
return server.start(
diagnosticPort: diagnosticPort,
diff --git a/pkg/analysis_server/test/integration/analysis/hint_sdk_version_async_exported_from_core_test.dart b/pkg/analysis_server/test/integration/analysis/hint_sdk_version_async_exported_from_core_test.dart
index 5398abf..38428ff 100644
--- a/pkg/analysis_server/test/integration/analysis/hint_sdk_version_async_exported_from_core_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/hint_sdk_version_async_exported_from_core_test.dart
@@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-// @dart = 2.9
-
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
diff --git a/pkg/analysis_server/test/integration/analysis/lint_test.dart b/pkg/analysis_server/test/integration/analysis/lint_test.dart
index 5b11ea0..a41d0f5 100644
--- a/pkg/analysis_server/test/integration/analysis/lint_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/lint_test.dart
@@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-// @dart = 2.9
-
import 'package:analyzer/src/util/file_paths.dart' as file_paths;
import 'package:analyzer_plugin/protocol/protocol_common.dart';
import 'package:test/test.dart';
@@ -50,7 +48,7 @@
await analysisFinished;
expect(currentAnalysisErrors[source], isList);
- var errors = currentAnalysisErrors[source];
+ var errors = existingErrorsForFile(source);
expect(errors, hasLength(1));
var error = errors[0];
expect(error.location.file, source);
diff --git a/pkg/analysis_server/test/integration/analysis/navigation_test.dart b/pkg/analysis_server/test/integration/analysis/navigation_test.dart
index 763097e..7d217d2 100644
--- a/pkg/analysis_server/test/integration/analysis/navigation_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/navigation_test.dart
@@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-// @dart = 2.9
-
import 'package:analysis_server/protocol/protocol_generated.dart';
import 'package:analyzer_plugin/protocol/protocol_common.dart';
import 'package:test/test.dart';
@@ -60,22 +58,19 @@
sendAnalysisSetSubscriptions({
AnalysisService.NAVIGATION: [pathname1]
});
- List<NavigationRegion> regions;
- List<NavigationTarget> targets;
- List<String> targetFiles;
- onAnalysisNavigation.listen((AnalysisNavigationParams params) {
- expect(params.file, equals(pathname1));
- regions = params.regions;
- targets = params.targets;
- targetFiles = params.files;
- });
-
- await analysisFinished;
// There should be a single error, due to the fact that 'dart:async' is not
// used.
+ await analysisFinished;
expect(currentAnalysisErrors[pathname1], hasLength(1));
expect(currentAnalysisErrors[pathname2], isEmpty);
+
+ var params = await onAnalysisNavigation.first;
+ expect(params.file, equals(pathname1));
+ var regions = params.regions;
+ var targets = params.targets;
+ var targetFiles = params.files;
+
NavigationTarget findTargetElement(int index) {
for (var region in regions) {
if (region.offset <= index && index < region.offset + region.length) {
diff --git a/pkg/analysis_server/test/integration/analysis/occurrences_test.dart b/pkg/analysis_server/test/integration/analysis/occurrences_test.dart
index 0332e23..e1b8d1c 100644
--- a/pkg/analysis_server/test/integration/analysis/occurrences_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/occurrences_test.dart
@@ -2,10 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-// @dart = 2.9
-
import 'package:analysis_server/protocol/protocol_generated.dart';
-import 'package:analyzer_plugin/protocol/protocol_common.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -19,7 +16,7 @@
@reflectiveTest
class OccurrencesTest extends AbstractAnalysisServerIntegrationTest {
- Future<void> test_occurrences() {
+ Future<void> test_occurrences() async {
var pathname = sourcePath('test.dart');
var text = r'''
main() {
@@ -37,33 +34,33 @@
sendAnalysisSetSubscriptions({
AnalysisService.OCCURRENCES: [pathname]
});
- List<Occurrences> occurrences;
- onAnalysisOccurrences.listen((AnalysisOccurrencesParams params) {
- expect(params.file, equals(pathname));
- occurrences = params.occurrences;
- });
- return analysisFinished.then((_) {
- expect(currentAnalysisErrors[pathname], isEmpty);
- Set<int> findOffsets(String elementName) {
- for (var occurrence in occurrences) {
- if (occurrence.element.name == elementName) {
- return occurrence.offsets.toSet();
- }
+
+ await analysisFinished;
+ expect(currentAnalysisErrors[pathname], isEmpty);
+
+ var params = await onAnalysisOccurrences.first;
+ expect(params.file, equals(pathname));
+ var occurrences = params.occurrences;
+
+ Set<int> findOffsets(String elementName) {
+ for (var occurrence in occurrences) {
+ if (occurrence.element.name == elementName) {
+ return occurrence.offsets.toSet();
}
- fail('No element found matching $elementName');
}
+ fail('No element found matching $elementName');
+ }
- void check(String elementName, Iterable<String> expectedOccurrences) {
- var expectedOffsets = expectedOccurrences
- .map((String substring) => text.indexOf(substring))
- .toSet();
- var foundOffsets = findOffsets(elementName);
- expect(foundOffsets, equals(expectedOffsets));
- }
+ void check(String elementName, Iterable<String> expectedOccurrences) {
+ var expectedOffsets = expectedOccurrences
+ .map((String substring) => text.indexOf(substring))
+ .toSet();
+ var foundOffsets = findOffsets(elementName);
+ expect(foundOffsets, equals(expectedOffsets));
+ }
- check('i', ['i = 0', 'i < 10', 'i++', 'i;']);
- check('j', ['j = 0', 'j < i', 'j++', 'j;']);
- check('sum', ['sum = 0', 'sum +=', 'sum)']);
- });
+ check('i', ['i = 0', 'i < 10', 'i++', 'i;']);
+ check('j', ['j = 0', 'j < i', 'j++', 'j;']);
+ check('sum', ['sum = 0', 'sum +=', 'sum)']);
}
}
diff --git a/pkg/analysis_server/test/integration/analysis/outline_test.dart b/pkg/analysis_server/test/integration/analysis/outline_test.dart
index bc498f8..df5a0ea 100644
--- a/pkg/analysis_server/test/integration/analysis/outline_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/outline_test.dart
@@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-// @dart = 2.9
-
import 'package:analysis_server/protocol/protocol_generated.dart';
import 'package:analyzer_plugin/protocol/protocol_common.dart';
import 'package:test/test.dart';
@@ -19,7 +17,7 @@
@reflectiveTest
class OutlineTest extends AbstractAnalysisServerIntegrationTest {
- Future<void> test_outline() {
+ Future<void> test_outline() async {
var pathname = sourcePath('test.dart');
var text = r'''
class Class1 {
@@ -47,27 +45,26 @@
sendAnalysisSetSubscriptions({
AnalysisService.OUTLINE: [pathname]
});
- Outline outline;
- onAnalysisOutline.listen((AnalysisOutlineParams params) {
- expect(params.file, equals(pathname));
- outline = params.outline;
- });
- return analysisFinished.then((_) {
- expect(outline.element.kind, equals(ElementKind.COMPILATION_UNIT));
- expect(outline.offset, equals(0));
- expect(outline.length, equals(text.length));
- var classes = outline.children;
- expect(classes, hasLength(2));
- expect(classes[0].element.name, equals('Class1'));
- expect(classes[1].element.name, equals('Class2'));
- var members = classes[0].children;
- expect(members, hasLength(5));
- expect(members[0].element.name, equals('field'));
- expect(members[1].element.name, equals('method'));
- expect(members[2].element.name, equals('staticMethod'));
- expect(members[3].element.name, equals('getter'));
- expect(members[4].element.name, equals('setter'));
- });
+ var params = await onAnalysisOutline.first;
+ expect(params.file, equals(pathname));
+ var outline = params.outline;
+
+ expect(outline.element.kind, equals(ElementKind.COMPILATION_UNIT));
+ expect(outline.offset, equals(0));
+ expect(outline.length, equals(text.length));
+
+ var classes = outline.children!;
+ expect(classes, hasLength(2));
+ expect(classes[0].element.name, equals('Class1'));
+ expect(classes[1].element.name, equals('Class2'));
+
+ var members = classes[0].children!;
+ expect(members, hasLength(5));
+ expect(members[0].element.name, equals('field'));
+ expect(members[1].element.name, equals('method'));
+ expect(members[2].element.name, equals('staticMethod'));
+ expect(members[3].element.name, equals('getter'));
+ expect(members[4].element.name, equals('setter'));
}
}
diff --git a/pkg/analysis_server/test/integration/analysis/overrides_test.dart b/pkg/analysis_server/test/integration/analysis/overrides_test.dart
index 912ac03..0358bb4 100644
--- a/pkg/analysis_server/test/integration/analysis/overrides_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/overrides_test.dart
@@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-// @dart = 2.9
-
import 'package:analysis_server/protocol/protocol_generated.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -18,7 +16,7 @@
@reflectiveTest
class OverridesTest extends AbstractAnalysisServerIntegrationTest {
- Future<void> test_overrides() {
+ Future<void> test_overrides() async {
var pathname = sourcePath('test.dart');
var text = r'''
abstract class Interface1 {
@@ -58,67 +56,69 @@
sendAnalysisSetSubscriptions({
AnalysisService.OVERRIDES: [pathname]
});
- List<Override> overrides;
- onAnalysisOverrides.listen((AnalysisOverridesParams params) {
- expect(params.file, equals(pathname));
- overrides = params.overrides;
- });
- return analysisFinished.then((_) {
- var targetOffset = text.indexOf('Target');
- Override findOverride(String methodName) {
- var methodOffset = text.indexOf(methodName, targetOffset);
- for (var override in overrides) {
- if (override.offset == methodOffset) {
- return override;
- }
- }
- return null;
- }
- void checkOverrides(String methodName, bool expectedOverridesBase,
- List<String> expectedOverridesInterfaces) {
- var override = findOverride(methodName);
- if (!expectedOverridesBase && expectedOverridesInterfaces.isEmpty) {
- // This method overrides nothing, so it should not appear in the
- // overrides list.
- expect(override, isNull);
- return;
- } else {
- expect(override, isNotNull);
- }
- expect(override.length, equals(methodName.length));
- var superclassMember = override.superclassMember;
- if (expectedOverridesBase) {
- expect(superclassMember.element.name, equals(methodName));
- expect(superclassMember.className, equals('Base'));
- } else {
- expect(superclassMember, isNull);
- }
- var interfaceMembers = override.interfaceMembers;
- if (expectedOverridesInterfaces.isNotEmpty) {
- expect(interfaceMembers, isNotNull);
- var actualOverridesInterfaces = <String>{};
- for (var overriddenMember in interfaceMembers) {
- expect(overriddenMember.element.name, equals(methodName));
- var className = overriddenMember.className;
- var wasAdded = actualOverridesInterfaces.add(className);
- expect(wasAdded, isTrue);
- }
- expect(actualOverridesInterfaces,
- equals(expectedOverridesInterfaces.toSet()));
- } else {
- expect(interfaceMembers, isNull);
+ var params = await onAnalysisOverrides.first;
+ expect(params.file, equals(pathname));
+ var overrides = params.overrides;
+
+ var targetOffset = text.indexOf('Target');
+
+ Override? findOverride(String methodName) {
+ var methodOffset = text.indexOf(methodName, targetOffset);
+ for (var override in overrides) {
+ if (override.offset == methodOffset) {
+ return override;
}
}
+ return null;
+ }
- checkOverrides('method0', true, ['Interface1', 'Interface2']);
- checkOverrides('method1', false, ['Interface1', 'Interface2']);
- checkOverrides('method2', true, ['Interface1']);
- checkOverrides('method3', false, ['Interface1']);
- checkOverrides('method4', true, ['Interface2']);
- checkOverrides('method5', false, ['Interface2']);
- checkOverrides('method6', true, []);
- checkOverrides('method7', false, []);
- });
+ void checkOverrides(String methodName, bool expectedOverridesBase,
+ List<String> expectedOverridesInterfaces) {
+ var override = findOverride(methodName);
+
+ if (!expectedOverridesBase && expectedOverridesInterfaces.isEmpty) {
+ // This method overrides nothing, so it should not appear in the
+ // overrides list.
+ expect(override, isNull);
+ return;
+ } else {
+ override!;
+ }
+
+ expect(override.length, equals(methodName.length));
+ var superclassMember = override.superclassMember;
+ if (expectedOverridesBase) {
+ superclassMember!;
+ expect(superclassMember.element.name, equals(methodName));
+ expect(superclassMember.className, equals('Base'));
+ } else {
+ expect(superclassMember, isNull);
+ }
+ var interfaceMembers = override.interfaceMembers;
+ if (expectedOverridesInterfaces.isNotEmpty) {
+ interfaceMembers!;
+ var actualOverridesInterfaces = <String>{};
+ for (var overriddenMember in interfaceMembers) {
+ expect(overriddenMember.element.name, equals(methodName));
+ var className = overriddenMember.className;
+ var wasAdded = actualOverridesInterfaces.add(className);
+ expect(wasAdded, isTrue);
+ }
+ expect(actualOverridesInterfaces,
+ equals(expectedOverridesInterfaces.toSet()));
+ } else {
+ expect(interfaceMembers, isNull);
+ }
+ }
+
+ checkOverrides('method0', true, ['Interface1', 'Interface2']);
+ checkOverrides('method1', false, ['Interface1', 'Interface2']);
+ checkOverrides('method2', true, ['Interface1']);
+ checkOverrides('method3', false, ['Interface1']);
+ checkOverrides('method4', true, ['Interface2']);
+ checkOverrides('method5', false, ['Interface2']);
+ checkOverrides('method6', true, []);
+ checkOverrides('method7', false, []);
}
}
diff --git a/pkg/analysis_server/test/integration/analysis/package_root_test.dart b/pkg/analysis_server/test/integration/analysis/package_root_test.dart
index 6c7801b..3bb2096 100644
--- a/pkg/analysis_server/test/integration/analysis/package_root_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/package_root_test.dart
@@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-// @dart = 2.9
-
import 'package:analysis_server/protocol/protocol_generated.dart';
import 'package:analyzer_plugin/protocol/protocol_common.dart';
import 'package:path/path.dart' as path;
diff --git a/pkg/analysis_server/test/integration/analysis/reanalyze_concurrent_test.dart b/pkg/analysis_server/test/integration/analysis/reanalyze_concurrent_test.dart
index 7cf4371..1a42362 100644
--- a/pkg/analysis_server/test/integration/analysis/reanalyze_concurrent_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/reanalyze_concurrent_test.dart
@@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-// @dart = 2.9
-
/// This test verifies that if reanalysis is performed while reanalysis is in
/// progress, no problems occur.
///
diff --git a/pkg/analysis_server/test/integration/analysis/reanalyze_test.dart b/pkg/analysis_server/test/integration/analysis/reanalyze_test.dart
index ddfd145..6534bab 100644
--- a/pkg/analysis_server/test/integration/analysis/reanalyze_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/reanalyze_test.dart
@@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-// @dart = 2.9
-
import 'package:analysis_server/protocol/protocol_generated.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -27,10 +25,9 @@
// Make sure that reanalyze causes analysis to restart.
var analysisRestarted = false;
onServerStatus.listen((ServerStatusParams data) {
- if (data.analysis != null) {
- if (data.analysis.isAnalyzing) {
- analysisRestarted = true;
- }
+ var analysisStatus = data.analysis;
+ if (analysisStatus != null && analysisStatus.isAnalyzing) {
+ analysisRestarted = true;
}
});
sendAnalysisReanalyze();
diff --git a/pkg/analysis_server/test/integration/analysis/set_analysis_roots_test.dart b/pkg/analysis_server/test/integration/analysis/set_analysis_roots_test.dart
index 2ef9e06..c8b991d 100644
--- a/pkg/analysis_server/test/integration/analysis/set_analysis_roots_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/set_analysis_roots_test.dart
@@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-// @dart = 2.9
-
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
diff --git a/pkg/analysis_server/test/integration/analysis/set_general_subscriptions_test.dart b/pkg/analysis_server/test/integration/analysis/set_general_subscriptions_test.dart
index 3523f2a..18cc929 100644
--- a/pkg/analysis_server/test/integration/analysis/set_general_subscriptions_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/set_general_subscriptions_test.dart
@@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-// @dart = 2.9
-
import 'package:analysis_server/protocol/protocol_generated.dart';
import 'package:path/path.dart' show join;
import 'package:test/test.dart';
diff --git a/pkg/analysis_server/test/integration/analysis/set_priority_files_test.dart b/pkg/analysis_server/test/integration/analysis/set_priority_files_test.dart
index 01898a7..bc7b3e4 100644
--- a/pkg/analysis_server/test/integration/analysis/set_priority_files_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/set_priority_files_test.dart
@@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-// @dart = 2.9
-
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -26,6 +24,7 @@
await sendAnalysisSetPriorityFiles([pathname]);
var status = await analysisFinished;
- expect(status.analysis.isAnalyzing, false);
+ var analysisStatus = status.analysis;
+ expect(analysisStatus != null && analysisStatus.isAnalyzing, false);
}
}
diff --git a/pkg/analysis_server/test/integration/analysis/set_subscriptions_test.dart b/pkg/analysis_server/test/integration/analysis/set_subscriptions_test.dart
index bfb9365..d9d22d0 100644
--- a/pkg/analysis_server/test/integration/analysis/set_subscriptions_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/set_subscriptions_test.dart
@@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-// @dart = 2.9
-
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
diff --git a/pkg/analysis_server/test/integration/analysis/test_all.dart b/pkg/analysis_server/test/integration/analysis/test_all.dart
index 7bb5fd1..2e463f0 100644
--- a/pkg/analysis_server/test/integration/analysis/test_all.dart
+++ b/pkg/analysis_server/test/integration/analysis/test_all.dart
@@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-// @dart = 2.9
-
import 'package:test_reflective_loader/test_reflective_loader.dart';
import 'analysis_options_test.dart' as analysis_options_test;
diff --git a/pkg/analysis_server/test/integration/analysis/update_content_list_test.dart b/pkg/analysis_server/test/integration/analysis/update_content_list_test.dart
index adb66f3..40c015c 100644
--- a/pkg/analysis_server/test/integration/analysis/update_content_list_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/update_content_list_test.dart
@@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-// @dart = 2.9
-
import 'package:analyzer_plugin/protocol/protocol_common.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
diff --git a/pkg/analysis_server/test/integration/analysis/update_content_test.dart b/pkg/analysis_server/test/integration/analysis/update_content_test.dart
index 5760287..524b73c 100644
--- a/pkg/analysis_server/test/integration/analysis/update_content_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/update_content_test.dart
@@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-// @dart = 2.9
-
import 'package:analyzer_plugin/protocol/protocol_common.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -78,7 +76,7 @@
standardAnalysisSetup();
await analysisFinished;
expect(currentAnalysisErrors[pathname], isList);
- var errors1 = currentAnalysisErrors[pathname];
+ var errors1 = existingErrorsForFile(pathname);
expect(errors1, hasLength(1));
expect(errors1[0].location.file, equals(pathname));
@@ -99,7 +97,7 @@
});
await analysisFinished;
expect(currentAnalysisErrors[pathname], isList);
- var errors2 = currentAnalysisErrors[pathname];
+ var errors2 = existingErrorsForFile(pathname);
expect(errors2, hasLength(1));
expect(errors2[0].location.file, equals(pathname));
}
diff --git a/pkg/analysis_server/test/integration/analysis/update_options_test.dart b/pkg/analysis_server/test/integration/analysis/update_options_test.dart
index cd18c90..4864f2c 100644
--- a/pkg/analysis_server/test/integration/analysis/update_options_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/update_options_test.dart
@@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-// @dart = 2.9
-
import 'package:analysis_server/protocol/protocol_generated.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
diff --git a/pkg/analysis_server/test/integration/support/integration_tests.dart b/pkg/analysis_server/test/integration/support/integration_tests.dart
index 71bc4ce..b135280 100644
--- a/pkg/analysis_server/test/integration/support/integration_tests.dart
+++ b/pkg/analysis_server/test/integration/support/integration_tests.dart
@@ -139,6 +139,16 @@
server.debugStdio();
}
+ /// If there was a set of errors (might be empty) received for the file
+ /// with the given [path], return it. If no errors - fail.
+ List<AnalysisError> existingErrorsForFile(String path) {
+ var errors = currentAnalysisErrors[path];
+ if (errors == null) {
+ fail('Expected errors for: $path');
+ }
+ return errors;
+ }
+
List<AnalysisError>? getErrors(String pathname) =>
currentAnalysisErrors[pathname];