Convert more diagnostic tests to DriverResolutionTest
Change-Id: Ia3aaf54d2142300180b66c7fd18245fb492f8176
Reviewed-on: https://dart-review.googlesource.com/c/93480
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/analyzer/lib/src/test_utilities/package_mixin.dart b/pkg/analyzer/lib/src/test_utilities/package_mixin.dart
new file mode 100644
index 0000000..9ad69d8
--- /dev/null
+++ b/pkg/analyzer/lib/src/test_utilities/package_mixin.dart
@@ -0,0 +1,74 @@
+// Copyright (c) 2019, 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.
+
+import 'package:analyzer/file_system/file_system.dart';
+import 'package:analyzer/src/test_utilities/resource_provider_mixin.dart';
+
+/// A mixin for test classes that provides support for creating packages.
+mixin PackageMixin implements ResourceProviderMixin {
+ /// Return the map from package names to lists of folders that is used to
+ /// resolve 'package:' URIs.
+ Map<String, List<Folder>> get packageMap;
+
+ /// Create a fake 'meta' package that can be used by tests.
+ void addMetaPackage() {
+ Folder lib = addPubPackage('meta');
+ newFile(join(lib.path, 'meta.dart'), content: r'''
+library meta;
+
+const _AlwaysThrows alwaysThrows = const _AlwaysThrows();
+const _Factory factory = const _Factory();
+const Immutable immutable = const Immutable();
+const _Literal literal = const _Literal();
+const _MustCallSuper mustCallSuper = const _MustCallSuper();
+const _Protected protected = const _Protected();
+const Required required = const Required();
+const _Sealed sealed = const _Sealed();
+const _VisibleForTesting visibleForTesting = const _VisibleForTesting();
+
+class Immutable {
+ final String reason;
+ const Immutable([this.reason]);
+}
+class _AlwaysThrows {
+ const _AlwaysThrows();
+}
+class _Factory {
+ const _Factory();
+}
+class _Literal {
+ const _Literal();
+}
+class _MustCallSuper {
+ const _MustCallSuper();
+}
+class _Protected {
+ const _Protected();
+}
+class Required {
+ final String reason;
+ const Required([this.reason]);
+}
+class _Sealed {
+ const _Sealed();
+}
+class _VisibleForTesting {
+ const _VisibleForTesting();
+}
+''');
+ }
+
+ /// Return a newly created directory in which the contents of a pub package
+ /// with the given [packageName] can be written. The package will be added to
+ /// the package map so that the package can be referenced from the code being
+ /// analyzed.
+ Folder addPubPackage(String packageName) {
+ // TODO(brianwilkerson) Consider renaming this to `addPackage` and passing
+ // in a `PackageStyle` (pub, bazel, gn, build, plain) in order to support
+ // creating other styles of packages.
+ Folder lib = getFolder('/.pub-cache/$packageName/lib');
+ packageMap[packageName] = [lib];
+ return lib;
+ }
+}
diff --git a/pkg/analyzer/test/generated/hint_code_test.dart b/pkg/analyzer/test/generated/hint_code_test.dart
index 6695ba9..aee1577 100644
--- a/pkg/analyzer/test/generated/hint_code_test.dart
+++ b/pkg/analyzer/test/generated/hint_code_test.dart
@@ -19,7 +19,9 @@
});
}
-final metaLibraryStub = r'''
+/// The contents of the 'meta' package. Code that uses this variable should be
+/// converted to use PackageMixin.addMetaPackage.
+final _metaLibraryStub = r'''
library meta;
const _AlwaysThrows alwaysThrows = const _AlwaysThrows();
@@ -70,7 +72,7 @@
test_subtypeOfSealedClass_extending() async {
super.resetWith(packages: [
- ['meta', metaLibraryStub],
+ ['meta', _metaLibraryStub],
[
'foo',
r'''
@@ -92,7 +94,7 @@
test_subtypeOfSealedClass_implementing() async {
super.resetWith(packages: [
- ['meta', metaLibraryStub],
+ ['meta', _metaLibraryStub],
[
'foo',
r'''
@@ -114,7 +116,7 @@
test_subtypeOfSealedClass_mixinApplication() async {
super.resetWith(packages: [
- ['meta', metaLibraryStub],
+ ['meta', _metaLibraryStub],
[
'foo',
r'''
@@ -137,7 +139,7 @@
test_subtypeOfSealedClass_mixinImplements() async {
super.resetWith(packages: [
- ['meta', metaLibraryStub],
+ ['meta', _metaLibraryStub],
[
'foo',
r'''
@@ -159,7 +161,7 @@
test_subtypeOfSealedClass_mixinOn() async {
super.resetWith(packages: [
- ['meta', metaLibraryStub],
+ ['meta', _metaLibraryStub],
[
'foo',
r'''
@@ -181,7 +183,7 @@
test_subtypeOfSealedClass_with() async {
super.resetWith(packages: [
- ['meta', metaLibraryStub],
+ ['meta', _metaLibraryStub],
[
'foo',
r'''
@@ -203,7 +205,7 @@
test_subtypeOfSealedClass_withinLibrary_OK() async {
super.resetWith(packages: [
- ['meta', metaLibraryStub],
+ ['meta', _metaLibraryStub],
]);
_newPubPackageRoot('/pkg1');
@@ -224,7 +226,7 @@
test_subtypeOfSealedClass_withinPackageLibDirectory_OK() async {
super.resetWith(packages: [
- ['meta', metaLibraryStub],
+ ['meta', _metaLibraryStub],
]);
_newPubPackageRoot('/pkg1');
@@ -249,7 +251,7 @@
test_subtypeOfSealedClass_withinPackageTestDirectory_OK() async {
super.resetWith(packages: [
- ['meta', metaLibraryStub],
+ ['meta', _metaLibraryStub],
]);
newFolder('/pkg1');
@@ -276,7 +278,7 @@
test_subtypeOfSealedClass_withinPart_OK() async {
super.resetWith(packages: [
- ['meta', metaLibraryStub],
+ ['meta', _metaLibraryStub],
]);
_newPubPackageRoot('/pkg1');
@@ -300,7 +302,7 @@
test_subtypeOfSealedMixin_mixinApplication() async {
super.resetWith(packages: [
- ['meta', metaLibraryStub],
+ ['meta', _metaLibraryStub],
[
'foo',
r'''
@@ -323,7 +325,7 @@
test_subtypeOfSealedMixin_with() async {
super.resetWith(packages: [
- ['meta', metaLibraryStub],
+ ['meta', _metaLibraryStub],
[
'foo',
r'''
@@ -355,7 +357,7 @@
@override
void reset() {
super.resetWith(packages: [
- ['meta', metaLibraryStub],
+ ['meta', _metaLibraryStub],
[
'js',
r'''
diff --git a/pkg/analyzer/test/src/dart/resolution/definite_assignment_test.dart b/pkg/analyzer/test/src/dart/resolution/definite_assignment_test.dart
index 48a15c7..ae67d5d 100644
--- a/pkg/analyzer/test/src/dart/resolution/definite_assignment_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/definite_assignment_test.dart
@@ -7,6 +7,7 @@
import 'package:analyzer/dart/ast/visitor.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/src/dart/resolver/definite_assignment.dart';
+import 'package:analyzer/src/test_utilities/package_mixin.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -19,7 +20,8 @@
}
@reflectiveTest
-class DefiniteAssignmentTrackerTest extends DriverResolutionTest {
+class DefiniteAssignmentTrackerTest extends DriverResolutionTest
+ with PackageMixin {
DefiniteAssignmentTracker tracker;
/// Assert that only local variables with the given names are marked as read
diff --git a/pkg/analyzer/test/src/dart/resolution/driver_resolution.dart b/pkg/analyzer/test/src/dart/resolution/driver_resolution.dart
index 50902ca..39405f2 100644
--- a/pkg/analyzer/test/src/dart/resolution/driver_resolution.dart
+++ b/pkg/analyzer/test/src/dart/resolution/driver_resolution.dart
@@ -27,20 +27,13 @@
PerformanceLog logger;
DartSdk sdk;
+ Map<String, List<Folder>> packageMap;
AnalysisDriverScheduler scheduler;
AnalysisDriver driver;
/// Override this to change the analysis options for a given set of tests.
AnalysisOptionsImpl get analysisOptions => AnalysisOptionsImpl();
- void addMetaPackage() {
- newFile('/.pub-cache/meta/lib/meta.dart', content: r'''
-library meta;
-
-const alwaysThrows = const Object();
-''');
- }
-
@override
Future<ResolvedUnitResult> resolveFile(String path) async {
return await driver.getResult(path);
@@ -51,7 +44,9 @@
logger = new PerformanceLog(logBuffer);
scheduler = new AnalysisDriverScheduler(logger);
- Map<String, List<Folder>> packageMap = <String, List<Folder>>{
+ // TODO(brianwilkerson) Create an empty package map by default and only add
+ // packages in the tests that need them.
+ packageMap = <String, List<Folder>>{
'test': [getFolder('/test/lib')],
'aaa': [getFolder('/aaa/lib')],
'bbb': [getFolder('/bbb/lib')],
diff --git a/pkg/analyzer/test/src/diagnostics/argument_type_not_assignable_test.dart b/pkg/analyzer/test/src/diagnostics/argument_type_not_assignable_test.dart
index 5915938..b40bc8e 100644
--- a/pkg/analyzer/test/src/diagnostics/argument_type_not_assignable_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/argument_type_not_assignable_test.dart
@@ -5,7 +5,7 @@
import 'package:analyzer/src/error/codes.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
-import '../../generated/resolver_test_case.dart';
+import '../dart/resolution/driver_resolution.dart';
main() {
defineReflectiveSuite(() {
@@ -14,10 +14,7 @@
}
@reflectiveTest
-class ArgumentTypeNotAssignableTest extends ResolverTestCase {
- @override
- bool get enableNewAnalysisDriver => true;
-
+class ArgumentTypeNotAssignableTest extends DriverResolutionTest {
test_functionType() async {
await assertErrorsInCode(r'''
m() {
diff --git a/pkg/analyzer/test/src/diagnostics/can_be_null_after_null_aware_test.dart b/pkg/analyzer/test/src/diagnostics/can_be_null_after_null_aware_test.dart
index 534c440..3e9bddb 100644
--- a/pkg/analyzer/test/src/diagnostics/can_be_null_after_null_aware_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/can_be_null_after_null_aware_test.dart
@@ -5,7 +5,7 @@
import 'package:analyzer/src/error/codes.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
-import '../../generated/resolver_test_case.dart';
+import '../dart/resolution/driver_resolution.dart';
main() {
defineReflectiveSuite(() {
@@ -14,10 +14,7 @@
}
@reflectiveTest
-class CanBeNullAfterNullAwareTest extends ResolverTestCase {
- @override
- bool get enableNewAnalysisDriver => true;
-
+class CanBeNullAfterNullAwareTest extends DriverResolutionTest {
test_afterCascade() async {
await assertErrorsInCode(r'''
m(x) {
diff --git a/pkg/analyzer/test/src/diagnostics/division_optimization_test.dart b/pkg/analyzer/test/src/diagnostics/division_optimization_test.dart
index 7fb98b8..eaadc2d 100644
--- a/pkg/analyzer/test/src/diagnostics/division_optimization_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/division_optimization_test.dart
@@ -5,7 +5,7 @@
import 'package:analyzer/src/error/codes.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
-import '../../generated/resolver_test_case.dart';
+import '../dart/resolution/driver_resolution.dart';
main() {
defineReflectiveSuite(() {
@@ -14,10 +14,7 @@
}
@reflectiveTest
-class DivisionOptimizationTest extends ResolverTestCase {
- @override
- bool get enableNewAnalysisDriver => true;
-
+class DivisionOptimizationTest extends DriverResolutionTest {
test_divisionOptimization() async {
await assertNoErrorsInCode(r'''
f(int x, int y) {
diff --git a/pkg/analyzer/test/src/diagnostics/invalid_assignment_test.dart b/pkg/analyzer/test/src/diagnostics/invalid_assignment_test.dart
index f35bbcc..c67ce98 100644
--- a/pkg/analyzer/test/src/diagnostics/invalid_assignment_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/invalid_assignment_test.dart
@@ -5,7 +5,7 @@
import 'package:analyzer/src/error/codes.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
-import '../../generated/resolver_test_case.dart';
+import '../dart/resolution/driver_resolution.dart';
main() {
defineReflectiveSuite(() {
@@ -14,10 +14,7 @@
}
@reflectiveTest
-class InvalidAssignmentTest extends ResolverTestCase {
- @override
- bool get enableNewAnalysisDriver => true;
-
+class InvalidAssignmentTest extends DriverResolutionTest {
test_instanceVariable() async {
await assertErrorsInCode(r'''
class A {
diff --git a/pkg/analyzer/test/src/diagnostics/invalid_cast_new_expr_test.dart b/pkg/analyzer/test/src/diagnostics/invalid_cast_new_expr_test.dart
index 125d43d..f1c94b4 100644
--- a/pkg/analyzer/test/src/diagnostics/invalid_cast_new_expr_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/invalid_cast_new_expr_test.dart
@@ -3,9 +3,10 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/src/error/codes.dart';
+import 'package:analyzer/src/generated/engine.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
-import '../../generated/resolver_test_case.dart';
+import '../dart/resolution/driver_resolution.dart';
main() {
defineReflectiveSuite(() {
@@ -14,12 +15,10 @@
}
@reflectiveTest
-class InvalidCastNewExprTest extends ResolverTestCase {
+class InvalidCastNewExprTest extends DriverResolutionTest {
@override
- List<String> get enabledExperiments => ['set-literals'];
-
- @override
- bool get enableNewAnalysisDriver => true;
+ AnalysisOptionsImpl get analysisOptions =>
+ AnalysisOptionsImpl()..enabledExperiments = ['set-literals'];
test_listLiteral_const() async {
await assertErrorsInCode(r'''
diff --git a/pkg/analyzer/test/src/diagnostics/invalid_required_param_test.dart b/pkg/analyzer/test/src/diagnostics/invalid_required_param_test.dart
index d426e08..96f6722c 100644
--- a/pkg/analyzer/test/src/diagnostics/invalid_required_param_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/invalid_required_param_test.dart
@@ -3,10 +3,10 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/src/error/codes.dart';
+import 'package:analyzer/src/test_utilities/package_mixin.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
-import '../../generated/hint_code_test.dart' show metaLibraryStub;
-import '../../generated/resolver_test_case.dart';
+import '../dart/resolution/driver_resolution.dart';
main() {
defineReflectiveSuite(() {
@@ -15,15 +15,11 @@
}
@reflectiveTest
-class InvalidRequiredParamTest extends ResolverTestCase {
+class InvalidRequiredParamTest extends DriverResolutionTest with PackageMixin {
@override
- bool get enableNewAnalysisDriver => true;
-
- @override
- void reset() {
- super.resetWith(packages: [
- ['meta', metaLibraryStub]
- ]);
+ void setUp() {
+ super.setUp();
+ addMetaPackage();
}
test_namedParameter_withDefault() async {
@@ -34,6 +30,14 @@
''', [HintCode.INVALID_REQUIRED_PARAM]);
}
+ test_positionalParameter_noDefault() async {
+ await assertErrorsInCode(r'''
+import 'package:meta/meta.dart';
+
+m([@required a]) => null;
+''', [HintCode.INVALID_REQUIRED_PARAM]);
+ }
+
test_positionalParameter_withDefault() async {
await assertErrorsInCode(r'''
import 'package:meta/meta.dart';
@@ -42,14 +46,6 @@
''', [HintCode.INVALID_REQUIRED_PARAM]);
}
- test_ppositionalParameter_noDefault() async {
- await assertErrorsInCode(r'''
-import 'package:meta/meta.dart';
-
-m([@required a]) => null;
-''', [HintCode.INVALID_REQUIRED_PARAM]);
- }
-
test_requiredParameter() async {
await assertErrorsInCode(r'''
import 'package:meta/meta.dart';
diff --git a/pkg/analyzer/test/src/diagnostics/invalid_visibility_annotation_test.dart b/pkg/analyzer/test/src/diagnostics/invalid_visibility_annotation_test.dart
index b842600..dd8ad78 100644
--- a/pkg/analyzer/test/src/diagnostics/invalid_visibility_annotation_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/invalid_visibility_annotation_test.dart
@@ -3,10 +3,10 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/src/error/codes.dart';
+import 'package:analyzer/src/test_utilities/package_mixin.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
-import '../../generated/hint_code_test.dart' show metaLibraryStub;
-import '../../generated/resolver_test_case.dart';
+import '../dart/resolution/driver_resolution.dart';
main() {
defineReflectiveSuite(() {
@@ -15,113 +15,19 @@
}
@reflectiveTest
-class InvalidVisibilityAnnotationTest extends ResolverTestCase {
+class InvalidVisibilityAnnotationTest extends DriverResolutionTest
+ with PackageMixin {
@override
- bool get enableNewAnalysisDriver => true;
-
- @override
- void reset() {
- super.resetWith(packages: [
- ['meta', metaLibraryStub]
- ]);
+ void setUp() {
+ super.setUp();
+ addMetaPackage();
}
- test_publicTopLevelVariable() async {
- await assertErrorsInCode(r'''
-import 'package:meta/meta.dart';
-@visibleForTesting final _a = 1;
-''', [HintCode.INVALID_VISIBILITY_ANNOTATION]);
- }
-
- test_topLevelVariable_multiplePrivate() async {
- await assertErrorsInCode(r'''
-import 'package:meta/meta.dart';
-@visibleForTesting final _a = 1, _b = 2;
-''', [
- HintCode.INVALID_VISIBILITY_ANNOTATION,
- HintCode.INVALID_VISIBILITY_ANNOTATION
- ]);
- }
-
- test_topLevelVariable_multipleMixed() async {
- await assertErrorsInCode(r'''
-import 'package:meta/meta.dart';
-@visibleForTesting final _a = 1, b = 2;
-''', [HintCode.INVALID_VISIBILITY_ANNOTATION]);
- }
-
- test_topLevelVariable_multiplePublic() async {
- await assertNoErrorsInCode(r'''
-import 'package:meta/meta.dart';
-@visibleForTesting final a = 1, b = 2;
-''');
- }
-
- test_privateTopLevelFucntion() async {
- await assertErrorsInCode(r'''
-import 'package:meta/meta.dart';
-@visibleForTesting void _f() {}
-''', [HintCode.INVALID_VISIBILITY_ANNOTATION]);
- }
-
- test_privateTopLevelFunction() async {
- await assertErrorsInCode(r'''
-import 'package:meta/meta.dart';
-@visibleForTesting void _f() {}
-''', [HintCode.INVALID_VISIBILITY_ANNOTATION]);
- }
-
- test_privateEnum() async {
- await assertErrorsInCode(r'''
-import 'package:meta/meta.dart';
-@visibleForTesting enum _E {a, b, c}
-''', [HintCode.INVALID_VISIBILITY_ANNOTATION]);
- }
-
- test_privateTypedef() async {
- await assertErrorsInCode(r'''
-import 'package:meta/meta.dart';
-@visibleForTesting typedef _T = Function();
-''', [HintCode.INVALID_VISIBILITY_ANNOTATION]);
- }
-
- test_privateClass() async {
- await assertErrorsInCode(r'''
-import 'package:meta/meta.dart';
-@visibleForTesting class _C {}
-''', [HintCode.INVALID_VISIBILITY_ANNOTATION]);
- }
-
- test_privateMixin() async {
- await assertErrorsInCode(r'''
-import 'package:meta/meta.dart';
-@visibleForTesting mixin _M {}
-''', [HintCode.INVALID_VISIBILITY_ANNOTATION]);
- }
-
- test_privateConstructor() async {
+ test_fields_multipleMixed() async {
await assertErrorsInCode(r'''
import 'package:meta/meta.dart';
class C {
- @visibleForTesting C._() {}
-}
-''', [HintCode.INVALID_VISIBILITY_ANNOTATION]);
- }
-
- test_privateMethod() async {
- await assertErrorsInCode(r'''
-import 'package:meta/meta.dart';
-class C {
- @visibleForTesting void _m() {}
-}
-''', [HintCode.INVALID_VISIBILITY_ANNOTATION]);
- }
-
- test_privateField() async {
- await assertErrorsInCode(r'''
-import 'package:meta/meta.dart';
-class C {
- @visibleForTesting int _a;
+ @visibleForTesting int _a, b;
}
''', [HintCode.INVALID_VISIBILITY_ANNOTATION]);
}
@@ -138,15 +44,6 @@
]);
}
- test_fields_multipleMixed() async {
- await assertErrorsInCode(r'''
-import 'package:meta/meta.dart';
-class C {
- @visibleForTesting int _a, b;
-}
-''', [HintCode.INVALID_VISIBILITY_ANNOTATION]);
- }
-
test_fields_multiplePublic() async {
await assertNoErrorsInCode(r'''
import 'package:meta/meta.dart';
@@ -156,6 +53,99 @@
''');
}
+ test_privateClass() async {
+ await assertErrorsInCode(r'''
+import 'package:meta/meta.dart';
+@visibleForTesting class _C {}
+''', [HintCode.INVALID_VISIBILITY_ANNOTATION]);
+ }
+
+ test_privateConstructor() async {
+ await assertErrorsInCode(r'''
+import 'package:meta/meta.dart';
+class C {
+ @visibleForTesting C._() {}
+}
+''', [HintCode.INVALID_VISIBILITY_ANNOTATION]);
+ }
+
+ test_privateEnum() async {
+ await assertErrorsInCode(r'''
+import 'package:meta/meta.dart';
+@visibleForTesting enum _E {a, b, c}
+''', [HintCode.INVALID_VISIBILITY_ANNOTATION]);
+ }
+
+ test_privateField() async {
+ await assertErrorsInCode(r'''
+import 'package:meta/meta.dart';
+class C {
+ @visibleForTesting int _a;
+}
+''', [HintCode.INVALID_VISIBILITY_ANNOTATION]);
+ }
+
+ test_privateMethod() async {
+ await assertErrorsInCode(r'''
+import 'package:meta/meta.dart';
+class C {
+ @visibleForTesting void _m() {}
+}
+''', [HintCode.INVALID_VISIBILITY_ANNOTATION]);
+ }
+
+ test_privateMixin() async {
+ await assertErrorsInCode(r'''
+import 'package:meta/meta.dart';
+@visibleForTesting mixin _M {}
+''', [HintCode.INVALID_VISIBILITY_ANNOTATION]);
+ }
+
+ test_privateTopLevelFunction() async {
+ await assertErrorsInCode(r'''
+import 'package:meta/meta.dart';
+@visibleForTesting void _f() {}
+''', [HintCode.INVALID_VISIBILITY_ANNOTATION]);
+ }
+
+ test_privateTopLevelVariable() async {
+ await assertErrorsInCode(r'''
+import 'package:meta/meta.dart';
+@visibleForTesting final _a = 1;
+''', [HintCode.INVALID_VISIBILITY_ANNOTATION]);
+ }
+
+ test_privateTypedef() async {
+ await assertErrorsInCode(r'''
+import 'package:meta/meta.dart';
+@visibleForTesting typedef _T = Function();
+''', [HintCode.INVALID_VISIBILITY_ANNOTATION]);
+ }
+
+ test_topLevelVariable_multipleMixed() async {
+ await assertErrorsInCode(r'''
+import 'package:meta/meta.dart';
+@visibleForTesting final _a = 1, b = 2;
+''', [HintCode.INVALID_VISIBILITY_ANNOTATION]);
+ }
+
+ test_topLevelVariable_multiplePrivate() async {
+ await assertErrorsInCode(r'''
+import 'package:meta/meta.dart';
+@visibleForTesting final _a = 1, _b = 2;
+''', [
+ HintCode.INVALID_VISIBILITY_ANNOTATION,
+ HintCode.INVALID_VISIBILITY_ANNOTATION
+ ]);
+ }
+
+ test_topLevelVariable_multiplePublic() async {
+ await assertNoErrorsInCode(r'''
+import 'package:meta/meta.dart';
+@visibleForTesting final a = 1, b = 2;
+''');
+ }
+
test_valid() async {
await assertNoErrorsInCode(r'''
import 'package:meta/meta.dart';
diff --git a/pkg/analyzer/test/src/diagnostics/unchecked_use_of_nullable_value_test.dart b/pkg/analyzer/test/src/diagnostics/unchecked_use_of_nullable_value_test.dart
index 36dc5fb..621b6b3 100644
--- a/pkg/analyzer/test/src/diagnostics/unchecked_use_of_nullable_value_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/unchecked_use_of_nullable_value_test.dart
@@ -4,9 +4,10 @@
import 'package:analyzer/src/dart/analysis/experiments.dart';
import 'package:analyzer/src/error/codes.dart';
+import 'package:analyzer/src/generated/engine.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
-import '../../generated/resolver_test_case.dart';
+import '../dart/resolution/driver_resolution.dart';
main() {
defineReflectiveSuite(() {
@@ -15,12 +16,10 @@
}
@reflectiveTest
-class UncheckedUseOfNullableValueTest extends ResolverTestCase {
+class UncheckedUseOfNullableValueTest extends DriverResolutionTest {
@override
- List<String> get enabledExperiments => [EnableString.non_nullable];
-
- @override
- bool get enableNewAnalysisDriver => true;
+ AnalysisOptionsImpl get analysisOptions =>
+ AnalysisOptionsImpl()..enabledExperiments = [EnableString.non_nullable];
test_and_nonNullable() async {
await assertNoErrorsInCode(r'''
diff --git a/pkg/analyzer/test/src/diagnostics/undefined_getter_test.dart b/pkg/analyzer/test/src/diagnostics/undefined_getter_test.dart
index 2740ff0..75f0359 100644
--- a/pkg/analyzer/test/src/diagnostics/undefined_getter_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/undefined_getter_test.dart
@@ -4,9 +4,10 @@
import 'package:analyzer/src/dart/analysis/experiments.dart';
import 'package:analyzer/src/error/codes.dart';
+import 'package:analyzer/src/generated/engine.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
-import '../../generated/resolver_test_case.dart';
+import '../dart/resolution/driver_resolution.dart';
main() {
defineReflectiveSuite(() {
@@ -16,10 +17,7 @@
}
@reflectiveTest
-class UndefinedGetterTest extends ResolverTestCase {
- @override
- bool get enableNewAnalysisDriver => true;
-
+class UndefinedGetterTest extends DriverResolutionTest {
test_ifStatement_notPromoted() async {
await assertErrorsInCode('''
f(int x) {
@@ -27,7 +25,7 @@
x.length;
}
}
-''', [StaticTypeWarningCode.UNDEFINED_GETTER], verify: false);
+''', [StaticTypeWarningCode.UNDEFINED_GETTER]);
}
test_ifStatement_promoted() async {
@@ -47,25 +45,23 @@
y.isEven;
}
}
-''', [StaticTypeWarningCode.UNDEFINED_GETTER], verify: false);
+''', [StaticTypeWarningCode.UNDEFINED_GETTER]);
}
}
@reflectiveTest
-class UndefinedGetterWithControlFlowCollectionsTest extends ResolverTestCase {
+class UndefinedGetterWithControlFlowCollectionsTest
+ extends DriverResolutionTest {
@override
- List<String> get enabledExperiments =>
- [EnableString.control_flow_collections];
-
- @override
- bool get enableNewAnalysisDriver => true;
+ AnalysisOptionsImpl get analysisOptions => AnalysisOptionsImpl()
+ ..enabledExperiments = [EnableString.control_flow_collections];
test_ifElement_inList_notPromoted() async {
await assertErrorsInCode('''
f(int x) {
return [if (x is String) x.length];
}
-''', [StaticTypeWarningCode.UNDEFINED_GETTER], verify: false);
+''', [StaticTypeWarningCode.UNDEFINED_GETTER]);
}
test_ifElement_inList_promoted() async {
@@ -81,7 +77,7 @@
f(int x) {
return {if (x is String) x : x.length};
}
-''', [StaticTypeWarningCode.UNDEFINED_GETTER], verify: false);
+''', [StaticTypeWarningCode.UNDEFINED_GETTER]);
}
test_ifElement_inMap_promoted() async {
@@ -97,7 +93,7 @@
f(int x) {
return {if (x is String) x.length};
}
-''', [StaticTypeWarningCode.UNDEFINED_GETTER], verify: false);
+''', [StaticTypeWarningCode.UNDEFINED_GETTER]);
}
test_ifElement_inSet_promoted() async {
diff --git a/pkg/analyzer/test/src/diagnostics/unnecessary_cast_test.dart b/pkg/analyzer/test/src/diagnostics/unnecessary_cast_test.dart
index 28e76bf..5459327 100644
--- a/pkg/analyzer/test/src/diagnostics/unnecessary_cast_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/unnecessary_cast_test.dart
@@ -5,7 +5,7 @@
import 'package:analyzer/src/error/codes.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
-import '../../generated/resolver_test_case.dart';
+import '../dart/resolution/driver_resolution.dart';
main() {
defineReflectiveSuite(() {
@@ -14,7 +14,7 @@
}
@reflectiveTest
-class UnnecessaryCastTest extends ResolverTestCase {
+class UnnecessaryCastTest extends DriverResolutionTest {
test_conditionalExpression() async {
await assertNoErrorsInCode(r'''
abstract class I {}
@@ -57,6 +57,17 @@
''');
}
+ test_generics() async {
+ // dartbug.com/18953
+ assertErrorsInCode(r'''
+import 'dart:async';
+Future<int> f() => new Future.value(0);
+void g(bool c) {
+ (c ? f(): new Future.value(0) as Future<int>).then((int value) {});
+}
+''', [HintCode.UNNECESSARY_CAST]);
+ }
+
test_parameter_A() async {
// dartbug.com/13855, dartbug.com/13732
await assertNoErrorsInCode(r'''
@@ -95,18 +106,4 @@
}
''', [HintCode.UNNECESSARY_CAST]);
}
-
- @override
- bool get enableNewAnalysisDriver => true;
-
- test_generics() async {
- // dartbug.com/18953
- assertErrorsInCode(r'''
-import 'dart:async';
-Future<int> f() => new Future.value(0);
-void g(bool c) {
- (c ? f(): new Future.value(0) as Future<int>).then((int value) {});
-}
-''', [HintCode.UNNECESSARY_CAST]);
- }
}
diff --git a/pkg/analyzer/test/src/diagnostics/unused_catch_stack_test.dart b/pkg/analyzer/test/src/diagnostics/unused_catch_stack_test.dart
index 0a7330b..71bba94 100644
--- a/pkg/analyzer/test/src/diagnostics/unused_catch_stack_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/unused_catch_stack_test.dart
@@ -5,7 +5,7 @@
import 'package:analyzer/src/dart/error/hint_codes.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
-import '../../generated/resolver_test_case.dart';
+import '../dart/resolution/driver_resolution.dart';
main() {
defineReflectiveSuite(() {
@@ -14,12 +14,11 @@
}
@reflectiveTest
-class UnusedCatchStackTest extends ResolverTestCase {
+class UnusedCatchStackTest extends DriverResolutionTest {
@override
- bool get enableNewAnalysisDriver => true;
+ bool get enableUnusedLocalVariable => true;
test_on_unusedStack() async {
- enableUnusedLocalVariable = true;
await assertErrorsInCode(r'''
main() {
try {
@@ -30,7 +29,6 @@
}
test_on_usedStack() async {
- enableUnusedLocalVariable = true;
await assertNoErrorsInCode(r'''
main() {
try {
@@ -42,7 +40,6 @@
}
test_unusedStack() async {
- enableUnusedLocalVariable = true;
await assertErrorsInCode(r'''
main() {
try {
@@ -53,7 +50,6 @@
}
test_usedStack() async {
- enableUnusedLocalVariable = true;
await assertNoErrorsInCode(r'''
main() {
try {
diff --git a/pkg/analyzer/test/src/diagnostics/unused_field_test.dart b/pkg/analyzer/test/src/diagnostics/unused_field_test.dart
index 3fa352c..91c7082 100644
--- a/pkg/analyzer/test/src/diagnostics/unused_field_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/unused_field_test.dart
@@ -5,7 +5,7 @@
import 'package:analyzer/src/error/codes.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
-import '../../generated/resolver_test_case.dart';
+import '../dart/resolution/driver_resolution.dart';
main() {
defineReflectiveSuite(() {
@@ -14,10 +14,7 @@
}
@reflectiveTest
-class UnusedFieldTest extends ResolverTestCase {
- @override
- bool get enableNewAnalysisDriver => true;
-
+class UnusedFieldTest extends DriverResolutionTest {
@override
bool get enableUnusedElement => true;
diff --git a/pkg/analyzer/test/src/diagnostics/unused_import_test.dart b/pkg/analyzer/test/src/diagnostics/unused_import_test.dart
index 34319e4..f94815c 100644
--- a/pkg/analyzer/test/src/diagnostics/unused_import_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/unused_import_test.dart
@@ -3,10 +3,9 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/src/error/codes.dart';
-import 'package:analyzer/src/generated/source.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
-import '../../generated/resolver_test_case.dart';
+import '../dart/resolution/driver_resolution.dart';
main() {
defineReflectiveSuite(() {
@@ -15,210 +14,142 @@
}
@reflectiveTest
-class UnusedImportTest extends ResolverTestCase {
- @override
- bool get enableNewAnalysisDriver => true;
-
+class UnusedImportTest extends DriverResolutionTest {
test_annotationOnDirective() async {
- Source source = addSource(r'''
-library L;
-@A()
-import 'lib1.dart';
-''');
- Source source2 = addNamedSource("/lib1.dart", r'''
-library lib1;
+ newFile('/test/lib/lib1.dart', content: r'''
class A {
const A() {}
}
''');
- await computeAnalysisResult(source);
- await computeAnalysisResult(source2);
- assertErrors(source);
- verify([source, source2]);
+ await assertNoErrorsInCode(r'''
+@A()
+import 'lib1.dart';
+''');
}
test_as() async {
- Source source = addSource(r'''
-library L;
+ newFile('/test/lib/lib1.dart', content: r'''
+class A {}
+''');
+ await assertErrorsInCode(r'''
import 'lib1.dart';
import 'lib1.dart' as one;
one.A a;
-''');
- Source source2 = addNamedSource("/lib1.dart", r'''
-library lib1;
-class A {}
-''');
- await computeAnalysisResult(source);
- await computeAnalysisResult(source2);
- assertErrors(source, [HintCode.UNUSED_IMPORT]);
- assertNoErrors(source2);
- verify([source, source2]);
+''', [HintCode.UNUSED_IMPORT]);
}
test_as_equalPrefixes_referenced() async {
// 18818
- Source source = addSource(r'''
-library L;
+ newFile('/test/lib/lib1.dart', content: r'''
+class A {}
+''');
+ newFile('/test/lib/lib2.dart', content: r'''
+class B {}
+''');
+ await assertNoErrorsInCode(r'''
import 'lib1.dart' as one;
import 'lib2.dart' as one;
one.A a;
one.B b;
''');
- Source source2 = addNamedSource("/lib1.dart", r'''
-library lib1;
-class A {}
-''');
- Source source3 = addNamedSource("/lib2.dart", r'''
-library lib2;
-class B {}
-''');
- await computeAnalysisResult(source);
- await computeAnalysisResult(source2);
- await computeAnalysisResult(source3);
- assertErrors(source);
- assertNoErrors(source2);
- assertNoErrors(source3);
- verify([source, source2, source3]);
}
@failingTest
test_as_equalPrefixes_unreferenced() async {
// See todo at ImportsVerifier.prefixElementMap.
- Source source = addSource(r'''
-library L;
+ newFile('/test/lib/lib1.dart', content: r'''
+class A {}
+''');
+ newFile('/test/lib/lib2.dart', content: r'''
+class B {}
+''');
+ await assertErrorsInCode(r'''
import 'lib1.dart' as one;
import 'lib2.dart' as one;
one.A a;
-''');
- Source source2 = addNamedSource("/lib1.dart", r'''
-library lib1;
-class A {}
-''');
- Source source3 = addNamedSource("/lib2.dart", r'''
-library lib2;
-class B {}
-''');
- await computeAnalysisResult(source);
- await computeAnalysisResult(source2);
- await computeAnalysisResult(source3);
- assertErrors(source, [HintCode.UNUSED_IMPORT]);
- assertNoErrors(source2);
- assertNoErrors(source3);
- verify([source, source2, source3]);
+''', [HintCode.UNUSED_IMPORT]);
}
test_core_library() async {
- Source source = addSource(r'''
-library L;
+ await assertNoErrorsInCode(r'''
import 'dart:core';
''');
- await computeAnalysisResult(source);
- assertNoErrors(source);
- verify([source]);
}
test_export() async {
- Source source = addSource(r'''
-library L;
-import 'lib1.dart';
-Two two;
-''');
- addNamedSource("/lib1.dart", r'''
-library lib1;
+ newFile('/test/lib/lib1.dart', content: r'''
export 'lib2.dart';
class One {}
''');
- addNamedSource("/lib2.dart", r'''
-library lib2;
+ newFile('/test/lib/lib2.dart', content: r'''
class Two {}
''');
- await computeAnalysisResult(source);
- assertNoErrors(source);
- verify([source]);
+ await assertNoErrorsInCode(r'''
+import 'lib1.dart';
+Two two;
+''');
}
test_export2() async {
- Source source = addSource(r'''
-library L;
+ newFile('/test/lib/lib1.dart', content: r'''
+export 'lib2.dart';
+class One {}
+''');
+ newFile('/test/lib/lib2.dart', content: r'''
+export 'lib3.dart';
+class Two {}
+''');
+ newFile('/test/lib/lib3.dart', content: r'''
+class Three {}
+''');
+ await assertNoErrorsInCode(r'''
import 'lib1.dart';
Three three;
''');
- addNamedSource("/lib1.dart", r'''
-library lib1;
-export 'lib2.dart';
-class One {}
-''');
- addNamedSource("/lib2.dart", r'''
-library lib2;
-export 'lib3.dart';
-class Two {}
-''');
- addNamedSource("/lib3.dart", r'''
-library lib3;
-class Three {}
-''');
- await computeAnalysisResult(source);
- assertNoErrors(source);
- verify([source]);
}
test_export_infiniteLoop() async {
- Source source = addSource(r'''
-library L;
-import 'lib1.dart';
-Two two;
-''');
- addNamedSource("/lib1.dart", r'''
-library lib1;
+ newFile('/test/lib/lib1.dart', content: r'''
export 'lib2.dart';
class One {}
''');
- addNamedSource("/lib2.dart", r'''
-library lib2;
+ newFile('/test/lib/lib2.dart', content: r'''
export 'lib3.dart';
class Two {}
''');
- addNamedSource("/lib3.dart", r'''
-library lib3;
+ newFile('/test/lib/lib3.dart', content: r'''
export 'lib2.dart';
class Three {}
''');
- await computeAnalysisResult(source);
- assertNoErrors(source);
- verify([source]);
+ await assertNoErrorsInCode(r'''
+import 'lib1.dart';
+Two two;
+''');
}
test_hide() async {
- Source source = addSource(r'''
-library L;
+ newFile('/test/lib/lib1.dart', content: r'''
+class A {}
+''');
+ await assertErrorsInCode(r'''
import 'lib1.dart';
import 'lib1.dart' hide A;
A a;
-''');
- Source source2 = addNamedSource("/lib1.dart", r'''
-library lib1;
-class A {}
-''');
- await computeAnalysisResult(source);
- await computeAnalysisResult(source2);
- assertErrors(source, [HintCode.UNUSED_IMPORT]);
- assertNoErrors(source2);
- verify([source, source2]);
+''', [HintCode.UNUSED_IMPORT]);
}
test_inComment_libraryDirective() async {
- Source source = addSource(r'''
+ await assertNoErrorsInCode(r'''
/// Use [Future] class.
-library L;
import 'dart:async';
''');
- await computeAnalysisResult(source);
- assertNoErrors(source);
}
test_metadata() async {
- Source source = addSource(r'''
-library L;
+ newFile('/test/lib/lib1.dart', content: r'''
+const x = 0;
+''');
+ await assertNoErrorsInCode(r'''
@A(x)
import 'lib1.dart';
class A {
@@ -226,18 +157,14 @@
const A(this.value);
}
''');
- addNamedSource("/lib1.dart", r'''
-library lib1;
-const x = 0;
-''');
- await computeAnalysisResult(source);
- assertNoErrors(source);
- verify([source]);
}
test_prefix_topLevelFunction() async {
- Source source = addSource(r'''
-library L;
+ newFile('/test/lib/lib1.dart', content: r'''
+class One {}
+topLevelFunction() {}
+''');
+ await assertNoErrorsInCode(r'''
import 'lib1.dart' hide topLevelFunction;
import 'lib1.dart' as one show topLevelFunction;
class A {
@@ -247,19 +174,14 @@
}
}
''');
- addNamedSource("/lib1.dart", r'''
-library lib1;
-class One {}
-topLevelFunction() {}
-''');
- await computeAnalysisResult(source);
- assertNoErrors(source);
- verify([source]);
}
test_prefix_topLevelFunction2() async {
- Source source = addSource(r'''
-library L;
+ newFile('/test/lib/lib1.dart', content: r'''
+class One {}
+topLevelFunction() {}
+''');
+ await assertNoErrorsInCode(r'''
import 'lib1.dart' hide topLevelFunction;
import 'lib1.dart' as one show topLevelFunction;
import 'lib1.dart' as two show topLevelFunction;
@@ -271,47 +193,24 @@
}
}
''');
- addNamedSource("/lib1.dart", r'''
-library lib1;
-class One {}
-topLevelFunction() {}
-''');
- await computeAnalysisResult(source);
- assertNoErrors(source);
- verify([source]);
}
test_show() async {
- Source source = addSource(r'''
-library L;
-import 'lib1.dart' show A;
-import 'lib1.dart' show B;
-A a;
-''');
- Source source2 = addNamedSource("/lib1.dart", r'''
-library lib1;
+ newFile('/test/lib/lib1.dart', content: r'''
class A {}
class B {}
''');
- await computeAnalysisResult(source);
- await computeAnalysisResult(source2);
- assertErrors(source, [HintCode.UNUSED_IMPORT]);
- assertNoErrors(source2);
- verify([source, source2]);
+ await assertErrorsInCode(r'''
+import 'lib1.dart' show A;
+import 'lib1.dart' show B;
+A a;
+''', [HintCode.UNUSED_IMPORT]);
}
test_unusedImport() async {
- Source source = addSource(r'''
-library L;
+ newFile('/test/lib/lib1.dart');
+ await assertErrorsInCode(r'''
import 'lib1.dart';
-''');
- Source source2 = addNamedSource("/lib1.dart", '''
-library lib1;
-''');
- await computeAnalysisResult(source);
- await computeAnalysisResult(source2);
- assertErrors(source, [HintCode.UNUSED_IMPORT]);
- assertNoErrors(source2);
- verify([source, source2]);
+''', [HintCode.UNUSED_IMPORT]);
}
}
diff --git a/pkg/analyzer/test/src/diagnostics/unused_label_test.dart b/pkg/analyzer/test/src/diagnostics/unused_label_test.dart
index e14f291..7d3a4f4 100644
--- a/pkg/analyzer/test/src/diagnostics/unused_label_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/unused_label_test.dart
@@ -5,7 +5,7 @@
import 'package:analyzer/src/error/codes.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
-import '../../generated/resolver_test_case.dart';
+import '../dart/resolution/driver_resolution.dart';
main() {
defineReflectiveSuite(() {
@@ -14,10 +14,7 @@
}
@reflectiveTest
-class UnusedLabelTest extends ResolverTestCase {
- @override
- bool get enableNewAnalysisDriver => true;
-
+class UnusedLabelTest extends DriverResolutionTest {
test_unused_inSwitch() async {
await assertErrorsInCode(r'''
f(x) {
diff --git a/pkg/analyzer/test/src/diagnostics/unused_local_variable_test.dart b/pkg/analyzer/test/src/diagnostics/unused_local_variable_test.dart
index ee12d06..ef082c4 100644
--- a/pkg/analyzer/test/src/diagnostics/unused_local_variable_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/unused_local_variable_test.dart
@@ -5,7 +5,7 @@
import 'package:analyzer/src/dart/error/hint_codes.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
-import '../../generated/resolver_test_case.dart';
+import '../dart/resolution/driver_resolution.dart';
main() {
defineReflectiveSuite(() {
@@ -14,12 +14,11 @@
}
@reflectiveTest
-class UnusedLocalVariableTest extends ResolverTestCase {
+class UnusedLocalVariableTest extends DriverResolutionTest {
@override
- bool get enableNewAnalysisDriver => true;
+ bool get enableUnusedLocalVariable => true;
test_inFor_underscore_ignored() async {
- enableUnusedLocalVariable = true;
await assertNoErrorsInCode(r'''
main() {
for (var _ in [1,2,3]) {
@@ -32,7 +31,6 @@
}
test_inFunction() async {
- enableUnusedLocalVariable = true;
await assertErrorsInCode(r'''
main() {
var v = 1;
@@ -42,7 +40,6 @@
}
test_inMethod() async {
- enableUnusedLocalVariable = true;
await assertErrorsInCode(r'''
class A {
foo() {
@@ -54,7 +51,6 @@
}
test_isInvoked() async {
- enableUnusedLocalVariable = true;
await assertNoErrorsInCode(r'''
typedef Foo();
main() {
@@ -65,7 +61,6 @@
}
test_isNullAssigned() async {
- enableUnusedLocalVariable = true;
await assertNoErrorsInCode(r'''
typedef Foo();
main() {
@@ -77,7 +72,6 @@
}
test_isRead_notUsed_compoundAssign() async {
- enableUnusedLocalVariable = true;
await assertErrorsInCode(r'''
main() {
var v = 1;
@@ -87,7 +81,6 @@
}
test_isRead_notUsed_postfixExpr() async {
- enableUnusedLocalVariable = true;
await assertErrorsInCode(r'''
main() {
var v = 1;
@@ -97,7 +90,6 @@
}
test_isRead_notUsed_prefixExpr() async {
- enableUnusedLocalVariable = true;
await assertErrorsInCode(r'''
main() {
var v = 1;
@@ -107,7 +99,6 @@
}
test_isRead_usedArgument() async {
- enableUnusedLocalVariable = true;
await assertNoErrorsInCode(r'''
main() {
var v = 1;
@@ -118,7 +109,6 @@
}
test_isRead_usedInvocationTarget() async {
- enableUnusedLocalVariable = true;
await assertNoErrorsInCode(r'''
class A {
foo() {}
diff --git a/pkg/analyzer/test/src/diagnostics/unused_shown_name_test.dart b/pkg/analyzer/test/src/diagnostics/unused_shown_name_test.dart
index 7b9f834..c798569 100644
--- a/pkg/analyzer/test/src/diagnostics/unused_shown_name_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/unused_shown_name_test.dart
@@ -3,10 +3,9 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/src/error/codes.dart';
-import 'package:analyzer/src/generated/source.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
-import '../../generated/resolver_test_case.dart';
+import '../dart/resolution/driver_resolution.dart';
main() {
defineReflectiveSuite(() {
@@ -15,89 +14,57 @@
}
@reflectiveTest
-class UnusedShownNameTest extends ResolverTestCase {
- @override
- bool get enableNewAnalysisDriver => true;
-
+class UnusedShownNameTest extends DriverResolutionTest {
test_unreferenced() async {
- Source source = addSource(r'''
-library L;
-import 'lib1.dart' show A, B;
-A a;
-''');
- Source source2 = addNamedSource("/lib1.dart", r'''
-library lib1;
+ newFile('/test/lib/lib1.dart', content: r'''
class A {}
class B {}
''');
- await computeAnalysisResult(source);
- await computeAnalysisResult(source2);
- assertErrors(source, [HintCode.UNUSED_SHOWN_NAME]);
- assertNoErrors(source2);
- verify([source, source2]);
+ assertErrorsInCode(r'''
+import 'lib1.dart' show A, B;
+A a;
+''', [HintCode.UNUSED_SHOWN_NAME]);
}
test_unusedShownName_as() async {
- Source source = addSource(r'''
-library L;
-import 'lib1.dart' as p show A, B;
-p.A a;
-''');
- Source source2 = addNamedSource("/lib1.dart", r'''
-library lib1;
+ newFile('/test/lib/lib1.dart', content: r'''
class A {}
class B {}
''');
- await computeAnalysisResult(source);
- await computeAnalysisResult(source2);
- assertErrors(source, [HintCode.UNUSED_SHOWN_NAME]);
- assertNoErrors(source2);
- verify([source, source2]);
+ assertErrorsInCode(r'''
+import 'lib1.dart' as p show A, B;
+p.A a;
+''', [HintCode.UNUSED_SHOWN_NAME]);
}
test_unusedShownName_duplicates() async {
- Source source = addSource(r'''
-library L;
-import 'lib1.dart' show A, B;
-import 'lib1.dart' show C, D;
-A a;
-C c;
-''');
- Source source2 = addNamedSource("/lib1.dart", r'''
-library lib1;
+ newFile('/test/lib/lib1.dart', content: r'''
class A {}
class B {}
class C {}
class D {}
''');
- await computeAnalysisResult(source);
- await computeAnalysisResult(source2);
- assertErrors(
- source, [HintCode.UNUSED_SHOWN_NAME, HintCode.UNUSED_SHOWN_NAME]);
- assertNoErrors(source2);
- verify([source, source2]);
+ assertErrorsInCode(r'''
+import 'lib1.dart' show A, B;
+import 'lib1.dart' show C, D;
+A a;
+C c;
+''', [HintCode.UNUSED_SHOWN_NAME, HintCode.UNUSED_SHOWN_NAME]);
}
test_unusedShownName_topLevelVariable() async {
- Source source = addSource(r'''
-library L;
-import 'lib1.dart' show var1, var2;
-import 'lib1.dart' show var3, var4;
-int a = var1;
-int b = var2;
-int c = var3;
-''');
- Source source2 = addNamedSource("/lib1.dart", r'''
-library lib1;
+ newFile('/test/lib/lib1.dart', content: r'''
const int var1 = 1;
const int var2 = 2;
const int var3 = 3;
const int var4 = 4;
''');
- await computeAnalysisResult(source);
- await computeAnalysisResult(source2);
- assertErrors(source, [HintCode.UNUSED_SHOWN_NAME]);
- assertNoErrors(source2);
- verify([source, source2]);
+ assertErrorsInCode(r'''
+import 'lib1.dart' show var1, var2;
+import 'lib1.dart' show var3, var4;
+int a = var1;
+int b = var2;
+int c = var3;
+''', [HintCode.UNUSED_SHOWN_NAME]);
}
}
diff --git a/pkg/analyzer/test/src/diagnostics/use_of_void_result_test.dart b/pkg/analyzer/test/src/diagnostics/use_of_void_result_test.dart
index dfe12c9..3d0a5a4 100644
--- a/pkg/analyzer/test/src/diagnostics/use_of_void_result_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/use_of_void_result_test.dart
@@ -4,7 +4,7 @@
import 'package:test_reflective_loader/test_reflective_loader.dart';
-import '../../generated/resolver_test_case.dart';
+import '../dart/resolution/driver_resolution.dart';
main() {
defineReflectiveSuite(() {
@@ -13,10 +13,7 @@
}
@reflectiveTest
-class UseOfVoidResultTest extends ResolverTestCase {
- @override
- bool get enableNewAnalysisDriver => true;
-
+class UseOfVoidResultTest extends DriverResolutionTest {
test_implicitReturnValue() async {
await assertNoErrorsInCode(r'''
f() {}