Disable legacy code support in the analyzer.
Before this change, the analyzer supported analyzing legacy code if
the (somewhat confusingly named) global variable `noSoundNullSafety`
was set to `false`. This was used to support legacy code while google3
was still migrating to null safety.
Now that the internal migration process is complete, the analyzer no
longer needs to support legacy code. As a first step in removing that
support, this change removes the `noSoundNullSafety` flag and all the
unit tests that made use of it.
From this point forward it will not be possible to use the analyzer to
analyze code that has a Dart language version less than 2.12.
Change-Id: Idce4b271d1cfc43d25251b7a899259d62b421caf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/345365
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/analysis_server/test/abstract_context.dart b/pkg/analysis_server/test/abstract_context.dart
index d9049f3..ed2378b 100644
--- a/pkg/analysis_server/test/abstract_context.dart
+++ b/pkg/analysis_server/test/abstract_context.dart
@@ -18,7 +18,6 @@
import 'package:analyzer/src/test_utilities/resource_provider_mixin.dart';
import 'package:analyzer/src/util/file_paths.dart' as file_paths;
import 'package:analyzer/src/utilities/extensions/file_system.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:linter/src/rules.dart';
import 'package:meta/meta.dart';
import 'package:test/test.dart';
@@ -219,7 +218,6 @@
void setupResourceProvider() {}
void tearDown() {
- noSoundNullSafety = true;
AnalysisEngine.instance.clearCaches();
}
diff --git a/pkg/analysis_server/test/src/services/correction/fix/remove_method_declaration_test.dart b/pkg/analysis_server/test/src/services/correction/fix/remove_method_declaration_test.dart
index 77f67a7..41c26b8 100644
--- a/pkg/analysis_server/test/src/services/correction/fix/remove_method_declaration_test.dart
+++ b/pkg/analysis_server/test/src/services/correction/fix/remove_method_declaration_test.dart
@@ -4,7 +4,6 @@
import 'package:analysis_server/src/services/correction/fix.dart';
import 'package:analysis_server/src/services/linter/lint_names.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:analyzer_plugin/utilities/fixes/fixes.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -123,32 +122,6 @@
''');
}
- Future<void> test_method_nullSafety_optIn_fromOptOut() async {
- noSoundNullSafety = false;
- createAnalysisOptionsFile(lints: [lintCode]);
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- int foo() => 0;
-}
-''');
- await resolveTestCode('''
-// @dart = 2.7
-import 'a.dart';
-
-class B extends A {
- @override
- int foo() => super.foo();
-}
-''');
- await assertHasFix('''
-// @dart = 2.7
-import 'a.dart';
-
-class B extends A {
-}
-''');
- }
-
Future<void> test_method_toString() async {
await resolveTestCode('''
class A {
diff --git a/pkg/analyzer/lib/src/generated/engine.dart b/pkg/analyzer/lib/src/generated/engine.dart
index 79cfb36..5e273d1 100644
--- a/pkg/analyzer/lib/src/generated/engine.dart
+++ b/pkg/analyzer/lib/src/generated/engine.dart
@@ -17,11 +17,9 @@
import 'package:analyzer/source/source.dart';
import 'package:analyzer/src/analysis_options/code_style_options.dart';
import 'package:analyzer/src/dart/analysis/experiments.dart';
-import 'package:analyzer/src/dart/sdk/sdk.dart';
import 'package:analyzer/src/generated/source.dart' show SourceFactory;
import 'package:analyzer/src/services/lint.dart';
import 'package:analyzer/src/summary/api_signature.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:pub_semver/pub_semver.dart';
export 'package:analyzer/dart/analysis/analysis_options.dart';
@@ -152,11 +150,6 @@
/// A set of analysis options used to control the behavior of an analysis
/// context.
class AnalysisOptionsImpl implements AnalysisOptions {
- static bool get _runsByDartSdkAtLeast300 {
- final sdkVersion = runningSdkVersion;
- return sdkVersion != null && sdkVersion >= Version.parse('3.0.0');
- }
-
/// The cached [unlinkedSignature].
Uint32List? _unlinkedSignature;
@@ -172,10 +165,8 @@
/// The constraint on the language version for every Dart file.
/// Violations will be reported as analysis errors.
- VersionConstraint? sourceLanguageConstraint =
- _runsByDartSdkAtLeast300 && noSoundNullSafety
- ? VersionConstraint.parse('>= 2.12.0')
- : null;
+ final VersionConstraint? sourceLanguageConstraint =
+ VersionConstraint.parse('>= 2.12.0');
ExperimentStatus _contextFeatures = ExperimentStatus();
diff --git a/pkg/analyzer/lib/src/generated/ffi_verifier.dart b/pkg/analyzer/lib/src/generated/ffi_verifier.dart
index 1785bca..2d763c8 100644
--- a/pkg/analyzer/lib/src/generated/ffi_verifier.dart
+++ b/pkg/analyzer/lib/src/generated/ffi_verifier.dart
@@ -15,7 +15,6 @@
import 'package:analyzer/src/dart/element/type.dart';
import 'package:analyzer/src/dart/element/type_system.dart';
import 'package:analyzer/src/dart/error/ffi_code.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
/// A visitor used to find problems with the way the `dart:ffi` APIs are being
/// used. See 'pkg/vm/lib/transformations/ffi_checks.md' for the specification
@@ -168,19 +167,6 @@
}
@override
- void visitConstructorFieldInitializer(ConstructorFieldInitializer node) {
- if (!noSoundNullSafety &&
- !typeSystem.isNonNullableByDefault &&
- inCompound) {
- _errorReporter.reportErrorForNode(
- FfiCode.FIELD_INITIALIZER_IN_STRUCT,
- node,
- );
- }
- super.visitConstructorFieldInitializer(node);
- }
-
- @override
void visitFieldDeclaration(FieldDeclaration node) {
if (inCompound) {
_validateFieldsInCompound(node);
@@ -1311,17 +1297,6 @@
fieldType, [fieldType.toSource()]);
}
}
-
- if (!noSoundNullSafety && !typeSystem.isNonNullableByDefault) {
- for (VariableDeclaration field in fields.variables) {
- if (field.initializer != null) {
- _errorReporter.reportErrorForToken(
- FfiCode.FIELD_IN_STRUCT_WITH_INITIALIZER,
- field.name,
- );
- }
- }
- }
}
/// Validate the invocation of the static method
diff --git a/pkg/analyzer/lib/src/utilities/legacy.dart b/pkg/analyzer/lib/src/utilities/legacy.dart
deleted file mode 100644
index 633a687..0000000
--- a/pkg/analyzer/lib/src/utilities/legacy.dart
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (c) 2022, 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.
-
-/// A flag indicating whether code that opts back to before 2.12 (null safety)
-/// is unsupported. That is, when the flag is `true` all code is analyzed
-/// assuming that null-safety is required, and when the flag is `false` all code
-/// is analyzed assuming that null-safety is optional.
-///
-/// This flag is only writable in order to allow us to continue to test the
-/// pre-3.0 behavior while developing 3.0.
-///
-/// This flag will be removed in Dart 3.0 (with an implied value of `true`), so
-/// it should not be used outside the analyzer package.
-bool noSoundNullSafety = true;
diff --git a/pkg/analyzer/test/generated/non_error_resolver_test.dart b/pkg/analyzer/test/generated/non_error_resolver_test.dart
index a341c59..17eab33 100644
--- a/pkg/analyzer/test/generated/non_error_resolver_test.dart
+++ b/pkg/analyzer/test/generated/non_error_resolver_test.dart
@@ -7,7 +7,6 @@
import 'package:analyzer/src/dart/element/member.dart';
import 'package:analyzer/src/error/codes.dart';
import 'package:analyzer/src/generated/parser.dart' show ParserErrorCode;
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -1460,40 +1459,6 @@
expect(y.declaration, findElement.parameter('arg'));
}
- test_genericTypeAlias_castsAndTypeChecks_hasTypeParameters() async {
- noSoundNullSafety = false;
- await assertNoErrorsInCode('''
-// @dart = 2.9
-typedef Foo<S> = S Function<T>(T x);
-
-main(Object p) {
- (p as Foo)<int>(3);
- if (p is Foo) {
- p<int>(3);
- }
- (p as Foo<String>)<int>(3);
- if (p is Foo<String>) {
- p<int>(3);
- }
-}
-''');
- }
-
- test_genericTypeAlias_castsAndTypeChecks_noTypeParameters() async {
- noSoundNullSafety = false;
- await assertNoErrorsInCode('''
-// @dart = 2.9
-typedef Foo = T Function<T>(T x);
-
-main(Object p) {
- (p as Foo)<int>(3);
- if (p is Foo) {
- p<int>(3);
- }
-}
-''');
- }
-
test_genericTypeAlias_fieldAndReturnType_noTypeParameters() async {
await assertNoErrorsInCode(r'''
typedef Foo = int Function<T>(T x);
@@ -3246,25 +3211,6 @@
''');
}
- test_typePromotion_if_is_and_subThenSuper() async {
- noSoundNullSafety = false;
- await assertNoErrorsInCode(r'''
-// @dart = 2.9
-class A {
- var a;
-}
-class B extends A {
- var b;
-}
-main(Object p) {
- if (p is B && p is A) {
- p.a;
- p.b;
- }
-}
-''');
- }
-
test_typePromotion_if_is_parenthesized() async {
await assertNoErrorsInCode(r'''
main(Object p) {
diff --git a/pkg/analyzer/test/src/dart/resolution/constant_test.dart b/pkg/analyzer/test/src/dart/resolution/constant_test.dart
index 26e6b05..3ead1d4 100644
--- a/pkg/analyzer/test/src/dart/resolution/constant_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/constant_test.dart
@@ -2,12 +2,10 @@
// 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/dart/element/element.dart';
import 'package:analyzer/src/dart/constant/value.dart';
import 'package:analyzer/src/dart/element/element.dart';
import 'package:analyzer/src/error/codes.dart';
import 'package:analyzer/src/test_utilities/find_element.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -22,51 +20,6 @@
@reflectiveTest
class ConstantResolutionTest extends PubPackageResolutionTest {
- test_constructor_nullSafe_fromLegacy_super() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- const A(List<Object> a);
-}
-
-class B extends A {
- const B(List<Object> a) : super(a);
-}
-''');
-
- await assertNoErrorsInCode(r'''
-// @dart = 2.8
-import 'a.dart';
-
-const a = <dynamic>[];
-const b = B(a);
-''');
-
- var b = findElement.topVar('b');
- assertType(b.computeConstantValue()!.type, 'B*');
- }
-
- test_constructor_nullSafe_fromLegacy_this() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- const A(List<Object> a) : this(a);
- const A.second(List<Object> a);
-}
-''');
-
- await assertNoErrorsInCode(r'''
-// @dart = 2.8
-import 'a.dart';
-
-const a = <dynamic>[];
-const b = A(a);
-''');
-
- var b = findElement.topVar('b');
- assertType(b.computeConstantValue()!.type, 'A*');
- }
-
test_context_eliminateTypeVariables() async {
await assertNoErrorsInCode(r'''
class A<T> {
@@ -87,119 +40,6 @@
'List<Never Function(Object?)>',
);
}
-
- test_field_optIn_fromOptOut() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- static const foo = 42;
-}
-''');
-
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-const bar = A.foo;
-''');
-
- var bar = findElement.topVar('bar');
- _assertIntValue(bar, 42);
- }
-
- test_fromEnvironment_optOut_fromOptIn() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-// @dart = 2.5
-
-const cBool = const bool.fromEnvironment('foo', defaultValue: false);
-const cInt = const int.fromEnvironment('foo', defaultValue: 1);
-const cString = const String.fromEnvironment('foo', defaultValue: 'bar');
-''');
-
- await assertErrorsInCode(r'''
-import 'a.dart';
-
-const vBool = cBool;
-const vInt = cInt;
-const vString = cString;
-''', [
- error(HintCode.IMPORT_OF_LEGACY_LIBRARY_INTO_NULL_SAFE, 7, 8),
- ]);
-
- DartObjectImpl evaluate(String name) {
- return findElement.topVar(name).computeConstantValue() as DartObjectImpl;
- }
-
- expect(evaluate('vBool').toBoolValue(), false);
- expect(evaluate('vInt').toIntValue(), 1);
- expect(evaluate('vString').toStringValue(), 'bar');
- }
-
- test_topLevelVariable_optIn_fromOptOut() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-const foo = 42;
-''');
-
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-const bar = foo;
-''');
-
- var bar = findElement.topVar('bar');
- assertType(bar.type, 'int*');
- _assertIntValue(bar, 42);
- }
-
- test_topLevelVariable_optOut2() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-const a = 42;
-''');
-
- newFile('$testPackageLibPath/b.dart', r'''
-import 'a.dart';
-
-const b = a;
-''');
-
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'b.dart';
-
-const c = b;
-''');
-
- var c = findElement.topVar('c');
- assertType(c.type, 'int*');
- _assertIntValue(c, 42);
- }
-
- test_topLevelVariable_optOut3() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-// @dart = 2.7
-const a = int.fromEnvironment('a', defaultValue: 42);
-''');
-
- await assertNoErrorsInCode(r'''
-// @dart = 2.7
-import 'a.dart';
-
-const b = a;
-''');
-
- var c = findElement.topVar('b');
- assertType(c.type, 'int*');
- _assertIntValue(c, 42);
- }
-
- void _assertIntValue(VariableElement element, int value) {
- expect(element.computeConstantValue()!.toIntValue(), value);
- }
}
@reflectiveTest
@@ -413,24 +253,4 @@
var a = findElement.topVar('a') as ConstVariableElement;
expect(a.computeConstantValue()!.toIntValue(), 42);
}
-
- /// See https://github.com/dart-lang/sdk/issues/43462
- test_useLanguageVersionOfEnclosingLibrary() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class Wrapper {
- final int value;
- const Wrapper(Object value) : value = value as int;
-}
-''');
-
- await assertNoErrorsInCode(r'''
-// @dart = 2.4
-import 'a.dart';
-
-void f() {
- const Wrapper(0);
-}
-''');
- }
}
diff --git a/pkg/analyzer/test/src/dart/resolution/context_collection_resolution.dart b/pkg/analyzer/test/src/dart/resolution/context_collection_resolution.dart
index ac992f2..ea8bece 100644
--- a/pkg/analyzer/test/src/dart/resolution/context_collection_resolution.dart
+++ b/pkg/analyzer/test/src/dart/resolution/context_collection_resolution.dart
@@ -23,7 +23,6 @@
import 'package:analyzer/src/test_utilities/package_config_file_builder.dart';
import 'package:analyzer/src/test_utilities/resource_provider_mixin.dart';
import 'package:analyzer/src/util/file_paths.dart' as file_paths;
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:analyzer/src/workspace/basic.dart';
import 'package:analyzer/src/workspace/blaze.dart';
import 'package:analyzer/src/workspace/gn.dart';
@@ -289,7 +288,6 @@
@mustCallSuper
Future<void> tearDown() async {
- noSoundNullSafety = true;
await disposeAnalysisContextCollection();
KernelCompilationService.disposeDelayed(
const Duration(milliseconds: 500),
diff --git a/pkg/analyzer/test/src/dart/resolution/for_element_test.dart b/pkg/analyzer/test/src/dart/resolution/for_element_test.dart
index 7d49ac9..5e88c4c 100644
--- a/pkg/analyzer/test/src/dart/resolution/for_element_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/for_element_test.dart
@@ -3,7 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/src/error/codes.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import 'context_collection_resolution.dart';
@@ -22,26 +21,6 @@
@reflectiveTest
class ForElementResolutionTest_ForEachPartsWithDeclaration
extends PubPackageResolutionTest with WithoutNullSafetyMixin {
- test_optIn_fromOptOut() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A implements Iterable<int> {
- Iterator<int> iterator => throw 0;
-}
-''');
-
- await assertNoErrorsInCode(r'''
-// @dart = 2.7
-import 'a.dart';
-
-f(A a) {
- for (var v in a) {
- v;
- }
-}
-''');
- }
-
test_withDeclaration_scope() async {
await assertNoErrorsInCode(r'''
main() {
diff --git a/pkg/analyzer/test/src/dart/resolution/language_version_test.dart b/pkg/analyzer/test/src/dart/resolution/language_version_test.dart
index b6ef135..dfb9cdc 100644
--- a/pkg/analyzer/test/src/dart/resolution/language_version_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/language_version_test.dart
@@ -4,7 +4,6 @@
import 'package:analyzer/src/dart/error/syntactic_errors.dart';
import 'package:analyzer/src/error/codes.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import 'context_collection_resolution.dart';
@@ -124,28 +123,6 @@
error(ParserErrorCode.MISSING_FUNCTION_PARAMETERS, 15, 3),
]);
}
-
- test_jsonConfigDisablesExtensions_languageOverrideEnables() async {
- noSoundNullSafety = false;
- _configureTestWithJsonConfig('''
-{
- "configVersion": 2,
- "packages": [
- {
- "name": "test",
- "rootUri": "../",
- "packageUri": "lib/",
- "languageVersion": "2.3"
- }
- ]
-}
-''');
-
- await assertNoErrorsInCode('''
-// @dart = 2.6
-extension E on int {}
-''');
- }
}
class _FeaturesTest extends PubPackageResolutionTest {
diff --git a/pkg/analyzer/test/src/dart/resolution/metadata_test.dart b/pkg/analyzer/test/src/dart/resolution/metadata_test.dart
index e764d62..e1c2ca9 100644
--- a/pkg/analyzer/test/src/dart/resolution/metadata_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/metadata_test.dart
@@ -6,7 +6,6 @@
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/src/error/codes.dart';
import 'package:analyzer/src/test_utilities/find_element.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import 'context_collection_resolution.dart';
@@ -451,422 +450,6 @@
_assertAtFoo42();
}
- test_optIn_fromOptOut_class() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- const A(int a);
-}
-''');
-
- await assertNoErrorsInCode(r'''
-// @dart = 2.7
-import 'a.dart';
-
-@A(0)
-void f() {}
-''');
-
- assertResolvedNodeText(findNode.annotation('@A'), r'''
-Annotation
- atSign: @
- name: SimpleIdentifier
- token: A
- staticElement: package:test/a.dart::@class::A
- staticType: null
- arguments: ArgumentList
- leftParenthesis: (
- arguments
- IntegerLiteral
- literal: 0
- parameter: ParameterMember
- base: package:test/a.dart::@class::A::@constructor::new::@parameter::a
- isLegacy: true
- staticType: int*
- rightParenthesis: )
- element: ConstructorMember
- base: package:test/a.dart::@class::A::@constructor::new
- isLegacy: true
-''');
- }
-
- test_optIn_fromOptOut_class_constructor() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- final int a;
- const A.named(this.a);
-}
-''');
-
- await assertNoErrorsInCode(r'''
-// @dart = 2.7
-import 'a.dart';
-
-@A.named(42)
-void f() {}
-''');
-
- var annotation = findNode.annotation('@A');
- assertResolvedNodeText(annotation, r'''
-Annotation
- atSign: @
- name: PrefixedIdentifier
- prefix: SimpleIdentifier
- token: A
- staticElement: package:test/a.dart::@class::A
- staticType: null
- period: .
- identifier: SimpleIdentifier
- token: named
- staticElement: ConstructorMember
- base: package:test/a.dart::@class::A::@constructor::named
- isLegacy: true
- staticType: null
- staticElement: ConstructorMember
- base: package:test/a.dart::@class::A::@constructor::named
- isLegacy: true
- staticType: null
- arguments: ArgumentList
- leftParenthesis: (
- arguments
- IntegerLiteral
- literal: 42
- parameter: FieldFormalParameterMember
- base: package:test/a.dart::@class::A::@constructor::named::@parameter::a
- isLegacy: true
- staticType: int*
- rightParenthesis: )
- element: ConstructorMember
- base: package:test/a.dart::@class::A::@constructor::named
- isLegacy: true
-''');
-
- _assertElementAnnotationValueText(
- findElement.function('f').metadata[0], r'''
-A*
- a: int 42
-''');
- }
-
- test_optIn_fromOptOut_class_constructor_withDefault() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- final int a;
- const A.named({this.a = 42});
-}
-''');
-
- await assertNoErrorsInCode(r'''
-// @dart = 2.7
-import 'a.dart';
-
-@A.named()
-void f() {}
-''');
-
- var annotation = findNode.annotation('@A');
- assertResolvedNodeText(annotation, r'''
-Annotation
- atSign: @
- name: PrefixedIdentifier
- prefix: SimpleIdentifier
- token: A
- staticElement: package:test/a.dart::@class::A
- staticType: null
- period: .
- identifier: SimpleIdentifier
- token: named
- staticElement: ConstructorMember
- base: package:test/a.dart::@class::A::@constructor::named
- isLegacy: true
- staticType: null
- staticElement: ConstructorMember
- base: package:test/a.dart::@class::A::@constructor::named
- isLegacy: true
- staticType: null
- arguments: ArgumentList
- leftParenthesis: (
- rightParenthesis: )
- element: ConstructorMember
- base: package:test/a.dart::@class::A::@constructor::named
- isLegacy: true
-''');
-
- _assertElementAnnotationValueText(
- findElement.function('f').metadata[0], r'''
-A*
- a: int 42
-''');
- }
-
- test_optIn_fromOptOut_class_getter() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- static const foo = 42;
-}
-''');
-
- await assertNoErrorsInCode(r'''
-// @dart = 2.7
-import 'a.dart';
-
-@A.foo
-void f() {}
-''');
-
- assertResolvedNodeText(findNode.annotation('@A'), r'''
-Annotation
- atSign: @
- name: PrefixedIdentifier
- prefix: SimpleIdentifier
- token: A
- staticElement: package:test/a.dart::@class::A
- staticType: null
- period: .
- identifier: SimpleIdentifier
- token: foo
- staticElement: PropertyAccessorMember
- base: package:test/a.dart::@class::A::@getter::foo
- isLegacy: true
- staticType: null
- staticElement: PropertyAccessorMember
- base: package:test/a.dart::@class::A::@getter::foo
- isLegacy: true
- staticType: null
- element: PropertyAccessorMember
- base: package:test/a.dart::@class::A::@getter::foo
- isLegacy: true
-''');
-
- _assertElementAnnotationValueText(
- findElement.function('f').metadata[0], r'''
-int 42
- variable: package:test/a.dart::@class::A::@field::foo
-''');
- }
-
- test_optIn_fromOptOut_getter() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-const foo = 42;
-''');
-
- await assertNoErrorsInCode(r'''
-// @dart = 2.7
-import 'a.dart';
-
-@foo
-void f() {}
-''');
-
- assertResolvedNodeText(findNode.annotation('@foo'), r'''
-Annotation
- atSign: @
- name: SimpleIdentifier
- token: foo
- staticElement: PropertyAccessorMember
- base: package:test/a.dart::@getter::foo
- isLegacy: true
- staticType: null
- element: PropertyAccessorMember
- base: package:test/a.dart::@getter::foo
- isLegacy: true
-''');
-
- _assertElementAnnotationValueText(
- findElement.function('f').metadata[0], r'''
-int 42
- variable: package:test/a.dart::@variable::foo
-''');
- }
-
- test_optIn_fromOptOut_prefix_class() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- const A(int a);
-}
-''');
-
- await assertNoErrorsInCode(r'''
-// @dart = 2.7
-import 'a.dart' as a;
-
-@a.A(0)
-void f() {}
-''');
-
- assertResolvedNodeText(findNode.annotation('@a.A'), r'''
-Annotation
- atSign: @
- name: PrefixedIdentifier
- prefix: SimpleIdentifier
- token: a
- staticElement: self::@prefix::a
- staticType: null
- period: .
- identifier: SimpleIdentifier
- token: A
- staticElement: package:test/a.dart::@class::A
- staticType: null
- staticElement: package:test/a.dart::@class::A
- staticType: null
- arguments: ArgumentList
- leftParenthesis: (
- arguments
- IntegerLiteral
- literal: 0
- parameter: ParameterMember
- base: package:test/a.dart::@class::A::@constructor::new::@parameter::a
- isLegacy: true
- staticType: int*
- rightParenthesis: )
- element: ConstructorMember
- base: package:test/a.dart::@class::A::@constructor::new
- isLegacy: true
-''');
- }
-
- test_optIn_fromOptOut_prefix_class_constructor() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- const A.named(int a);
-}
-''');
-
- await assertNoErrorsInCode(r'''
-// @dart = 2.7
-import 'a.dart' as a;
-
-@a.A.named(0)
-void f() {}
-''');
-
- assertResolvedNodeText(findNode.annotation('@a.A'), r'''
-Annotation
- atSign: @
- name: PrefixedIdentifier
- prefix: SimpleIdentifier
- token: a
- staticElement: self::@prefix::a
- staticType: null
- period: .
- identifier: SimpleIdentifier
- token: A
- staticElement: package:test/a.dart::@class::A
- staticType: null
- staticElement: package:test/a.dart::@class::A
- staticType: null
- period: .
- constructorName: SimpleIdentifier
- token: named
- staticElement: ConstructorMember
- base: package:test/a.dart::@class::A::@constructor::named
- isLegacy: true
- staticType: null
- arguments: ArgumentList
- leftParenthesis: (
- arguments
- IntegerLiteral
- literal: 0
- parameter: ParameterMember
- base: package:test/a.dart::@class::A::@constructor::named::@parameter::a
- isLegacy: true
- staticType: int*
- rightParenthesis: )
- element: ConstructorMember
- base: package:test/a.dart::@class::A::@constructor::named
- isLegacy: true
-''');
- }
-
- test_optIn_fromOptOut_prefix_class_getter() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- static const foo = 0;
-}
-''');
-
- await assertNoErrorsInCode(r'''
-// @dart = 2.7
-import 'a.dart' as a;
-
-@a.A.foo
-void f() {}
-''');
-
- assertResolvedNodeText(findNode.annotation('@a.A'), r'''
-Annotation
- atSign: @
- name: PrefixedIdentifier
- prefix: SimpleIdentifier
- token: a
- staticElement: self::@prefix::a
- staticType: null
- period: .
- identifier: SimpleIdentifier
- token: A
- staticElement: package:test/a.dart::@class::A
- staticType: null
- staticElement: package:test/a.dart::@class::A
- staticType: null
- period: .
- constructorName: SimpleIdentifier
- token: foo
- staticElement: PropertyAccessorMember
- base: package:test/a.dart::@class::A::@getter::foo
- isLegacy: true
- staticType: null
- element: PropertyAccessorMember
- base: package:test/a.dart::@class::A::@getter::foo
- isLegacy: true
-''');
- }
-
- test_optIn_fromOptOut_prefix_getter() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-const foo = 0;
-''');
-
- await assertNoErrorsInCode(r'''
-// @dart = 2.7
-import 'a.dart' as a;
-
-@a.foo
-void f() {}
-''');
-
- assertResolvedNodeText(findNode.annotation('@a'), r'''
-Annotation
- atSign: @
- name: PrefixedIdentifier
- prefix: SimpleIdentifier
- token: a
- staticElement: self::@prefix::a
- staticType: null
- period: .
- identifier: SimpleIdentifier
- token: foo
- staticElement: PropertyAccessorMember
- base: package:test/a.dart::@getter::foo
- isLegacy: true
- staticType: null
- staticElement: PropertyAccessorMember
- base: package:test/a.dart::@getter::foo
- isLegacy: true
- staticType: null
- element: PropertyAccessorMember
- base: package:test/a.dart::@getter::foo
- isLegacy: true
-''');
- }
-
test_value_class_inference_namedConstructor() async {
await assertNoErrorsInCode(r'''
class A {
diff --git a/pkg/analyzer/test/src/dart/resolution/method_invocation_test.dart b/pkg/analyzer/test/src/dart/resolution/method_invocation_test.dart
index 01aa7a7..bf2a857 100644
--- a/pkg/analyzer/test/src/dart/resolution/method_invocation_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/method_invocation_test.dart
@@ -5,7 +5,6 @@
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/src/dart/error/syntactic_errors.dart';
import 'package:analyzer/src/error/codes.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test/expect.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -456,45 +455,6 @@
''');
}
- test_hasReceiver_deferredImportPrefix_loadLibrary_optIn_fromOptOut() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {}
-''');
-
- await assertErrorsInCode(r'''
-// @dart = 2.7
-import 'a.dart' deferred as a;
-
-main() {
- a.loadLibrary();
-}
-''', [
- error(WarningCode.UNUSED_IMPORT, 22, 8),
- ]);
-
- var node = findNode.methodInvocation('loadLibrary()');
- assertResolvedNodeText(node, r'''
-MethodInvocation
- target: SimpleIdentifier
- token: a
- staticElement: self::@prefix::a
- staticType: null
- operator: .
- methodName: SimpleIdentifier
- token: loadLibrary
- staticElement: FunctionMember
- base: loadLibrary@-1
- isLegacy: true
- staticType: Future<dynamic>* Function()*
- argumentList: ArgumentList
- leftParenthesis: (
- rightParenthesis: )
- staticInvokeType: Future<dynamic>* Function()*
- staticType: Future<dynamic>*
-''');
- }
-
test_hasReceiver_extensionTypeName() async {
await assertNoErrorsInCode(r'''
extension type A(int it) {
diff --git a/pkg/analyzer/test/src/dart/resolution/named_type_test.dart b/pkg/analyzer/test/src/dart/resolution/named_type_test.dart
index 8cdf47c..de7cc3a 100644
--- a/pkg/analyzer/test/src/dart/resolution/named_type_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/named_type_test.dart
@@ -4,7 +4,6 @@
import 'package:analyzer/src/error/codes.dart';
import 'package:analyzer/src/test_utilities/find_element.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import 'context_collection_resolution.dart';
@@ -388,426 +387,6 @@
''');
}
- test_optIn_fromOptOut_class() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {}
-''');
-
- await assertNoErrorsInCode(r'''
-// @dart = 2.7
-import 'a.dart';
-
-f(A a) {}
-''');
-
- final node = findNode.namedType('A a');
- assertResolvedNodeText(node, r'''
-NamedType
- name: A
- element: package:test/a.dart::@class::A
- type: A*
-''');
- }
-
- test_optIn_fromOptOut_class_generic_toBounds() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A<T extends num> {}
-''');
-
- await assertNoErrorsInCode(r'''
-// @dart = 2.7
-import 'a.dart';
-
-f(A a) {}
-''');
-
- final node = findNode.namedType('A a');
- assertResolvedNodeText(node, r'''
-NamedType
- name: A
- element: package:test/a.dart::@class::A
- type: A<num*>*
-''');
- }
-
- test_optIn_fromOptOut_class_generic_toBounds_dynamic() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A<T> {}
-''');
-
- await assertNoErrorsInCode(r'''
-// @dart = 2.7
-import 'a.dart';
-
-f(A a) {}
-''');
-
- final node = findNode.namedType('A a');
- assertResolvedNodeText(node, r'''
-NamedType
- name: A
- element: package:test/a.dart::@class::A
- type: A<dynamic>*
-''');
- }
-
- test_optIn_fromOptOut_class_generic_typeArguments() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A<T> {}
-''');
-
- await assertNoErrorsInCode(r'''
-// @dart = 2.7
-import 'a.dart';
-
-f(A<int> a) {}
-''');
-
- final node = findNode.namedType('A<int> a');
- assertResolvedNodeText(node, r'''
-NamedType
- name: A
- typeArguments: TypeArgumentList
- leftBracket: <
- arguments
- NamedType
- name: int
- element: dart:core::@class::int
- type: int*
- rightBracket: >
- element: package:test/a.dart::@class::A
- type: A<int*>*
-''');
- }
-
- test_optIn_fromOptOut_functionTypeAlias() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-typedef F = int Function(bool);
-''');
-
- await assertNoErrorsInCode(r'''
-// @dart = 2.7
-import 'a.dart';
-
-f(F a) {}
-''');
-
- final node = findNode.namedType('F a');
- assertResolvedNodeText(node, r'''
-NamedType
- name: F
- element: package:test/a.dart::@typeAlias::F
- type: int* Function(bool*)*
- alias: package:test/a.dart::@typeAlias::F
-''');
- }
-
- test_optIn_fromOptOut_functionTypeAlias_generic_dynamic() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-typedef F<T> = T Function(bool);
-''');
-
- await assertNoErrorsInCode(r'''
-// @dart = 2.7
-import 'a.dart';
-
-f(F a) {}
-''');
-
- final node = findNode.namedType('F a');
- assertResolvedNodeText(node, r'''
-NamedType
- name: F
- element: package:test/a.dart::@typeAlias::F
- type: dynamic Function(bool*)*
- alias: package:test/a.dart::@typeAlias::F
- typeArguments
- dynamic
-''');
- }
-
- test_optIn_fromOptOut_functionTypeAlias_generic_toBounds() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-typedef F<T extends num> = T Function(bool);
-''');
-
- await assertNoErrorsInCode(r'''
-// @dart = 2.7
-import 'a.dart';
-
-f(F a) {}
-''');
-
- final node = findNode.namedType('F a');
- assertResolvedNodeText(node, r'''
-NamedType
- name: F
- element: package:test/a.dart::@typeAlias::F
- type: num* Function(bool*)*
- alias: package:test/a.dart::@typeAlias::F
- typeArguments
- num*
-''');
- }
-
- test_optIn_fromOptOut_functionTypeAlias_generic_typeArguments() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-typedef F<T> = T Function(bool);
-''');
-
- await assertNoErrorsInCode(r'''
-// @dart = 2.7
-import 'a.dart';
-
-f(F<int> a) {}
-''');
-
- final node = findNode.namedType('F<int>');
- assertResolvedNodeText(node, r'''
-NamedType
- name: F
- typeArguments: TypeArgumentList
- leftBracket: <
- arguments
- NamedType
- name: int
- element: dart:core::@class::int
- type: int*
- rightBracket: >
- element: package:test/a.dart::@typeAlias::F
- type: int* Function(bool*)*
- alias: package:test/a.dart::@typeAlias::F
- typeArguments
- int*
-''');
- }
-
- test_optOut_fromOptIn_class() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-// @dart = 2.7
-class A {}
-''');
-
- await assertErrorsInCode(r'''
-import 'a.dart';
-
-f(A a) {}
-''', [
- error(HintCode.IMPORT_OF_LEGACY_LIBRARY_INTO_NULL_SAFE, 7, 8),
- ]);
-
- final node = findNode.namedType('A a');
- assertResolvedNodeText(node, r'''
-NamedType
- name: A
- element: package:test/a.dart::@class::A
- type: A
-''');
- }
-
- test_optOut_fromOptIn_class_generic_toBounds() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-// @dart = 2.7
-class A<T extends num> {}
-''');
-
- await assertErrorsInCode(r'''
-import 'a.dart';
-
-f(A a) {}
-''', [
- error(HintCode.IMPORT_OF_LEGACY_LIBRARY_INTO_NULL_SAFE, 7, 8),
- ]);
-
- final node = findNode.namedType('A a');
- assertResolvedNodeText(node, r'''
-NamedType
- name: A
- element: package:test/a.dart::@class::A
- type: A<num*>
-''');
- }
-
- test_optOut_fromOptIn_class_generic_toBounds_dynamic() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-// @dart = 2.7
-class A<T> {}
-''');
-
- await assertErrorsInCode(r'''
-import 'a.dart';
-
-f(A a) {}
-''', [
- error(HintCode.IMPORT_OF_LEGACY_LIBRARY_INTO_NULL_SAFE, 7, 8),
- ]);
-
- final node = findNode.namedType('A a');
- assertResolvedNodeText(node, r'''
-NamedType
- name: A
- element: package:test/a.dart::@class::A
- type: A<dynamic>
-''');
- }
-
- test_optOut_fromOptIn_class_generic_typeArguments() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-// @dart = 2.7
-class A<T> {}
-''');
-
- await assertErrorsInCode(r'''
-import 'a.dart';
-
-f(A<int> a) {}
-''', [
- error(HintCode.IMPORT_OF_LEGACY_LIBRARY_INTO_NULL_SAFE, 7, 8),
- ]);
-
- final node = findNode.namedType('A<int> a');
- assertResolvedNodeText(node, r'''
-NamedType
- name: A
- typeArguments: TypeArgumentList
- leftBracket: <
- arguments
- NamedType
- name: int
- element: dart:core::@class::int
- type: int
- rightBracket: >
- element: package:test/a.dart::@class::A
- type: A<int>
-''');
- }
-
- test_optOut_fromOptIn_functionTypeAlias() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-// @dart = 2.7
-typedef F = int Function();
-''');
-
- await assertErrorsInCode(r'''
-import 'a.dart';
-
-f(F a) {}
-''', [
- error(HintCode.IMPORT_OF_LEGACY_LIBRARY_INTO_NULL_SAFE, 7, 8),
- ]);
-
- final node = findNode.namedType('F a');
- assertResolvedNodeText(node, r'''
-NamedType
- name: F
- element: package:test/a.dart::@typeAlias::F
- type: int* Function()
- alias: package:test/a.dart::@typeAlias::F
-''');
- }
-
- test_optOut_fromOptIn_functionTypeAlias_generic_toBounds() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-// @dart = 2.7
-typedef F<T extends num> = T Function();
-''');
-
- await assertErrorsInCode(r'''
-import 'a.dart';
-
-f(F a) {}
-''', [
- error(HintCode.IMPORT_OF_LEGACY_LIBRARY_INTO_NULL_SAFE, 7, 8),
- ]);
-
- final node = findNode.namedType('F a');
- assertResolvedNodeText(node, r'''
-NamedType
- name: F
- element: package:test/a.dart::@typeAlias::F
- type: num* Function()
- alias: package:test/a.dart::@typeAlias::F
- typeArguments
- num*
-''');
- }
-
- test_optOut_fromOptIn_functionTypeAlias_generic_toBounds_dynamic() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-// @dart = 2.7
-typedef F<T> = T Function();
-''');
-
- await assertErrorsInCode(r'''
-import 'a.dart';
-
-f(F a) {}
-''', [
- error(HintCode.IMPORT_OF_LEGACY_LIBRARY_INTO_NULL_SAFE, 7, 8),
- ]);
-
- final node = findNode.namedType('F a');
- assertResolvedNodeText(node, r'''
-NamedType
- name: F
- element: package:test/a.dart::@typeAlias::F
- type: dynamic Function()
- alias: package:test/a.dart::@typeAlias::F
- typeArguments
- dynamic
-''');
- }
-
- test_optOut_fromOptIn_functionTypeAlias_generic_typeArguments() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-// @dart = 2.7
-typedef F<T> = T Function();
-''');
-
- await assertErrorsInCode(r'''
-import 'a.dart';
-
-f(F<int> a) {}
-''', [
- error(HintCode.IMPORT_OF_LEGACY_LIBRARY_INTO_NULL_SAFE, 7, 8),
- ]);
-
- final node = findNode.namedType('F<int> a');
- assertResolvedNodeText(node, r'''
-NamedType
- name: F
- typeArguments: TypeArgumentList
- leftBracket: <
- arguments
- NamedType
- name: int
- element: dart:core::@class::int
- type: int
- rightBracket: >
- element: package:test/a.dart::@typeAlias::F
- type: int* Function()
- alias: package:test/a.dart::@typeAlias::F
- typeArguments
- int
-''');
- }
-
test_typeAlias_asInstanceCreation_explicitNew_typeArguments_interfaceType_none() async {
await assertNoErrorsInCode(r'''
class A<T> {}
@@ -930,37 +509,6 @@
''');
}
- test_typeAlias_asParameterType_interfaceType_none_inLegacy() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-typedef X<T> = Map<int, T>;
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.9
-import 'a.dart';
-void f(X<String> a) {}
-''');
-
- final node = findNode.namedType('X<String>');
- assertResolvedNodeText(node, r'''
-NamedType
- name: X
- typeArguments: TypeArgumentList
- leftBracket: <
- arguments
- NamedType
- name: String
- element: dart:core::@class::String
- type: String*
- rightBracket: >
- element: package:test/a.dart::@typeAlias::X
- type: Map<int*, String*>*
- alias: package:test/a.dart::@typeAlias::X
- typeArguments
- String*
-''');
- }
-
test_typeAlias_asParameterType_interfaceType_question() async {
await assertNoErrorsInCode(r'''
typedef X<T> = List<T?>;
@@ -1007,37 +555,6 @@
''');
}
- test_typeAlias_asParameterType_interfaceType_question_inLegacy() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-typedef X<T> = List<T?>;
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.9
-import 'a.dart';
-void f(X<int> a) {}
-''');
-
- final node = findNode.namedType('X<int>');
- assertResolvedNodeText(node, r'''
-NamedType
- name: X
- typeArguments: TypeArgumentList
- leftBracket: <
- arguments
- NamedType
- name: int
- element: dart:core::@class::int
- type: int*
- rightBracket: >
- element: package:test/a.dart::@typeAlias::X
- type: List<int*>*
- alias: package:test/a.dart::@typeAlias::X
- typeArguments
- int*
-''');
- }
-
test_typeAlias_asParameterType_Never_none() async {
await assertNoErrorsInCode(r'''
typedef X = Never;
@@ -1062,26 +579,6 @@
''');
}
- test_typeAlias_asParameterType_Never_none_inLegacy() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-typedef X = Never;
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.9
-import 'a.dart';
-void f(X a) {}
-''');
-
- final node = findNode.namedType('X a');
- assertResolvedNodeText(node, r'''
-NamedType
- name: X
- element: package:test/a.dart::@typeAlias::X
- type: Null*
-''');
- }
-
test_typeAlias_asParameterType_Never_question() async {
await assertNoErrorsInCode(r'''
typedef X = Never?;
diff --git a/pkg/analyzer/test/src/dart/resolution/prefixed_identifier_test.dart b/pkg/analyzer/test/src/dart/resolution/prefixed_identifier_test.dart
index 001d4b2..d848671 100644
--- a/pkg/analyzer/test/src/dart/resolution/prefixed_identifier_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/prefixed_identifier_test.dart
@@ -3,7 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/src/error/codes.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import 'context_collection_resolution.dart';
@@ -18,44 +17,6 @@
@reflectiveTest
class PrefixedIdentifierResolutionTest extends PubPackageResolutionTest
with PrefixedIdentifierResolutionTestCases {
- test_deferredImportPrefix_loadLibrary_optIn_fromOptOut() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {}
-''');
-
- await assertErrorsInCode(r'''
-// @dart = 2.7
-import 'a.dart' deferred as a;
-
-main() {
- a.loadLibrary;
-}
-''', [
- error(WarningCode.UNUSED_IMPORT, 22, 8),
- ]);
-
- final node = findNode.singlePrefixedIdentifier;
- assertResolvedNodeText(node, r'''
-PrefixedIdentifier
- prefix: SimpleIdentifier
- token: a
- staticElement: self::@prefix::a
- staticType: null
- period: .
- identifier: SimpleIdentifier
- token: loadLibrary
- staticElement: FunctionMember
- base: loadLibrary@-1
- isLegacy: true
- staticType: Future<dynamic>* Function()*
- staticElement: FunctionMember
- base: loadLibrary@-1
- isLegacy: true
- staticType: Future<dynamic>* Function()*
-''');
- }
-
test_enum_read() async {
await assertNoErrorsInCode('''
enum E {
diff --git a/pkg/analyzer/test/src/dart/resolution/simple_identifier_test.dart b/pkg/analyzer/test/src/dart/resolution/simple_identifier_test.dart
index 20c1b14..728f6f8 100644
--- a/pkg/analyzer/test/src/dart/resolution/simple_identifier_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/simple_identifier_test.dart
@@ -3,7 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/src/error/codes.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import 'context_collection_resolution.dart';
@@ -172,33 +171,6 @@
''');
}
- test_functionReference() async {
- noSoundNullSafety = false;
- await assertErrorsInCode('''
-// @dart = 2.7
-import 'dart:math';
-
-class A {
- const A(_);
-}
-
-@A([min])
-main() {}
-''', [
- error(CompileTimeErrorCode.COULD_NOT_INFER, 66, 5),
- ]);
-
- final node = findNode.simple('min]');
- assertResolvedNodeText(node, r'''
-SimpleIdentifier
- token: min
- staticElement: FunctionMember
- base: dart:math::@function::min
- isLegacy: true
- staticType: T* Function<T extends num*>(T*, T*)*
-''');
- }
-
test_implicitCall_tearOff() async {
await assertNoErrorsInCode('''
class A {
diff --git a/pkg/analyzer/test/src/diagnostics/cast_from_null_always_fails_test.dart b/pkg/analyzer/test/src/diagnostics/cast_from_null_always_fails_test.dart
index 8248157..9cc61f8 100644
--- a/pkg/analyzer/test/src/diagnostics/cast_from_null_always_fails_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/cast_from_null_always_fails_test.dart
@@ -3,7 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/src/error/codes.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../dart/resolution/context_collection_resolution.dart';
@@ -98,17 +97,6 @@
''');
}
- test_Null_preNullSafety() async {
- noSoundNullSafety = false;
- await assertNoErrorsInCode('''
-// @dart=2.9
-
-void f(Null n) {
- n as int;
-}
-''');
- }
-
test_nullable_nonNullable() async {
await assertNoErrorsInCode('''
void f(int? n) {
diff --git a/pkg/analyzer/test/src/diagnostics/conflicting_generic_interfaces_test.dart b/pkg/analyzer/test/src/diagnostics/conflicting_generic_interfaces_test.dart
index ca74438..f42a9fa 100644
--- a/pkg/analyzer/test/src/diagnostics/conflicting_generic_interfaces_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/conflicting_generic_interfaces_test.dart
@@ -3,7 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/src/error/codes.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../dart/resolution/context_collection_resolution.dart';
@@ -58,36 +57,6 @@
]);
}
- test_class_extends_implements_optOut() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class I<T> {}
-class A implements I<int> {}
-class B implements I<int?> {}
-''');
- await assertNoErrorsInCode('''
-// @dart = 2.5
-import 'a.dart';
-
-class C extends A implements B {}
-''');
- }
-
- test_class_extends_optIn_implements_optOut() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A<T> {}
-
-class B extends A<int> {}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-class C extends B implements A<int> {}
-''');
- }
-
test_class_extends_with() async {
await assertErrorsInCode('''
class I<T> {}
diff --git a/pkg/analyzer/test/src/diagnostics/const_constructor_field_type_mismatch_test.dart b/pkg/analyzer/test/src/diagnostics/const_constructor_field_type_mismatch_test.dart
index 1bedd6a..1975189 100644
--- a/pkg/analyzer/test/src/diagnostics/const_constructor_field_type_mismatch_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/const_constructor_field_type_mismatch_test.dart
@@ -3,7 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/src/error/codes.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../dart/resolution/context_collection_resolution.dart';
@@ -32,21 +31,6 @@
);
}
- test_notGeneric_null_forNonNullable_fromLegacy() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class C {
- final int f;
- const C(a) : f = a;
-}
-''');
- await assertNoErrorsInCode('''
-// @dart = 2.9
-import 'a.dart';
-const a = const C(null);
-''');
- }
-
test_notGeneric_unresolved_int() async {
await assertErrorsInCode(r'''
class A {
diff --git a/pkg/analyzer/test/src/diagnostics/could_not_infer_test.dart b/pkg/analyzer/test/src/diagnostics/could_not_infer_test.dart
index f9583ea..eefc7a1 100644
--- a/pkg/analyzer/test/src/diagnostics/could_not_infer_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/could_not_infer_test.dart
@@ -3,7 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/src/error/codes.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../dart/resolution/context_collection_resolution.dart';
@@ -19,24 +18,6 @@
// https://github.com/dart-lang/sdk/issues/44078)
@reflectiveTest
class CouldNotInferTest extends PubPackageResolutionTest {
- test_constructor_nullSafe_fromLegacy() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', '''
-class C<T extends Object> {
- C(T t);
-}
-''');
-
- await assertNoErrorsInCode('''
-// @dart = 2.8
-import 'a.dart';
-
-void f(dynamic a) {
- C(a);
-}
-''');
- }
-
test_function_argument_invalidType() async {
await assertErrorsInCode(r'''
void foo<T extends num>(T t) {}
diff --git a/pkg/analyzer/test/src/diagnostics/deprecated_member_use_test.dart b/pkg/analyzer/test/src/diagnostics/deprecated_member_use_test.dart
index 090bd87..4278e9c 100644
--- a/pkg/analyzer/test/src/diagnostics/deprecated_member_use_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/deprecated_member_use_test.dart
@@ -4,7 +4,6 @@
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/src/error/codes.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../../generated/test_support.dart';
@@ -253,26 +252,6 @@
]);
}
- test_instanceCreation_namedParameter_fromLegacy() async {
- noSoundNullSafety = false;
- newFile('$workspaceRootPath/aaa/lib/a.dart', r'''
-class A {
- A({@deprecated int a}) {}
-}
-''');
-
- await assertErrorsInCode(r'''
-// @dart = 2.9
-import 'package:aaa/a.dart';
-
-void f() {
- A(a: 0);
-}
-''', [
- error(HintCode.DEPRECATED_MEMBER_USE, 60, 1),
- ]);
- }
-
test_instanceCreation_undeprecatedClass_deprecatedConstructor() async {
newFile('$workspaceRootPath/aaa/lib/a.dart', r'''
class A {
@@ -291,64 +270,6 @@
error(HintCode.DEPRECATED_MEMBER_USE, 43, 1),
]);
}
-
- test_methodInvocation_namedParameter_ofFunction_fromLegacy() async {
- noSoundNullSafety = false;
- newFile('$workspaceRootPath/aaa/lib/a.dart', r'''
-void foo({@deprecated int a}) {}
-''');
-
- await assertErrorsInCode(r'''
-// @dart = 2.9
-import 'package:aaa/a.dart';
-
-void f() {
- foo(a: 0);
-}
-''', [
- error(HintCode.DEPRECATED_MEMBER_USE, 62, 1),
- ]);
- }
-
- test_methodInvocation_namedParameter_ofMethod_fromLegacy() async {
- noSoundNullSafety = false;
- newFile('$workspaceRootPath/aaa/lib/a.dart', r'''
-class A {
- void foo({@deprecated int a}) {}
-}
-''');
-
- await assertErrorsInCode(r'''
-// @dart = 2.9
-import 'package:aaa/a.dart';
-
-void f(A a) {
- a.foo(a: 0);
-}
-''', [
- error(HintCode.DEPRECATED_MEMBER_USE, 67, 1),
- ]);
- }
-
- test_superConstructorInvocation_namedParameter_fromLegacy() async {
- noSoundNullSafety = false;
- newFile('$workspaceRootPath/aaa/lib/a.dart', r'''
-class A {
- A({@deprecated int a}) {}
-}
-''');
-
- await assertErrorsInCode(r'''
-// @dart = 2.9
-import 'package:aaa/a.dart';
-
-class B extends A {
- B() : super(a: 0);
-}
-''', [
- error(HintCode.DEPRECATED_MEMBER_USE, 79, 1),
- ]);
- }
}
mixin DeprecatedMemberUse_BasicWorkspaceTestCases on PubPackageResolutionTest {
diff --git a/pkg/analyzer/test/src/diagnostics/experiment_not_enabled_test.dart b/pkg/analyzer/test/src/diagnostics/experiment_not_enabled_test.dart
index 09a30bd..60e1ad3d 100644
--- a/pkg/analyzer/test/src/diagnostics/experiment_not_enabled_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/experiment_not_enabled_test.dart
@@ -4,7 +4,6 @@
import 'package:analyzer/src/dart/error/syntactic_errors.dart';
import 'package:analyzer/src/error/codes.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../dart/resolution/context_collection_resolution.dart';
@@ -33,23 +32,6 @@
]);
}
- test_constructor_tearoffs_disabled_grammar_pre_nnbd() async {
- noSoundNullSafety = false;
- await assertErrorsInCode('''
-// @dart=2.9
-class Foo<X> {
- const Foo.bar();
- int get baz => 0;
-}
-main() {
- Foo<int>.bar.baz();
-}
-''', [
- error(ParserErrorCode.EXPERIMENT_NOT_ENABLED, 83, 5),
- error(CompileTimeErrorCode.UNDEFINED_METHOD, 93, 3),
- ]);
- }
-
test_nonFunctionTypeAliases_disabled() async {
await assertErrorsInCode(r'''
// @dart = 2.12
diff --git a/pkg/analyzer/test/src/diagnostics/field_in_struct_with_initializer_test.dart b/pkg/analyzer/test/src/diagnostics/field_in_struct_with_initializer_test.dart
index 5e2d8df..fd82347 100644
--- a/pkg/analyzer/test/src/diagnostics/field_in_struct_with_initializer_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/field_in_struct_with_initializer_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.
-import 'package:analyzer/src/dart/error/ffi_code.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../dart/resolution/context_collection_resolution.dart';
@@ -17,30 +15,6 @@
@reflectiveTest
class FieldInStructWithInitializerTest extends PubPackageResolutionTest
with WithoutNullSafetyMixin {
- test_instance_withInitializer() async {
- noSoundNullSafety = false;
- await assertErrorsInCode(r'''
-import 'dart:ffi';
-class C extends Struct {
- Pointer p = nullptr;
-}
-''', [
- error(FfiCode.FIELD_IN_STRUCT_WITH_INITIALIZER, 54, 1),
- ]);
- }
-
- test_instance_withInitializer2() async {
- noSoundNullSafety = false;
- await assertErrorsInCode(r'''
-import 'dart:ffi';
-class C extends Union {
- Pointer p = nullptr;
-}
-''', [
- error(FfiCode.FIELD_IN_STRUCT_WITH_INITIALIZER, 53, 1),
- ]);
- }
-
test_instance_withoutInitializer() async {
await assertNoErrorsInCode(r'''
import 'dart:ffi';
diff --git a/pkg/analyzer/test/src/diagnostics/field_initializer_in_struct_test.dart b/pkg/analyzer/test/src/diagnostics/field_initializer_in_struct_test.dart
index 711fc38..9f4374d 100644
--- a/pkg/analyzer/test/src/diagnostics/field_initializer_in_struct_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/field_initializer_in_struct_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.
-import 'package:analyzer/src/dart/error/ffi_code.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../dart/resolution/context_collection_resolution.dart';
@@ -17,32 +15,6 @@
@reflectiveTest
class FieldInitializerInStructTest extends PubPackageResolutionTest
with WithoutNullSafetyMixin {
- test_fieldInitializer() async {
- noSoundNullSafety = false;
- await assertErrorsInCode('''
-import 'dart:ffi';
-class C extends Struct {
- @Int32() int f;
- C() : f = 0;
-}
-''', [
- error(FfiCode.FIELD_INITIALIZER_IN_STRUCT, 70, 5),
- ]);
- }
-
- test_fieldInitializer2() async {
- noSoundNullSafety = false;
- await assertErrorsInCode('''
-import 'dart:ffi';
-class C extends Union {
- @Int32() int f;
- C() : f = 0;
-}
-''', [
- error(FfiCode.FIELD_INITIALIZER_IN_STRUCT, 69, 5),
- ]);
- }
-
test_superInitializer() async {
await assertNoErrorsInCode('''
import 'dart:ffi';
diff --git a/pkg/analyzer/test/src/diagnostics/illegal_language_version_override_test.dart b/pkg/analyzer/test/src/diagnostics/illegal_language_version_override_test.dart
index efc7c23..727c386 100644
--- a/pkg/analyzer/test/src/diagnostics/illegal_language_version_override_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/illegal_language_version_override_test.dart
@@ -3,7 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/src/error/codes.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../dart/resolution/context_collection_resolution.dart';
@@ -31,7 +30,6 @@
}
test_hasOverride_less() async {
- noSoundNullSafety = true;
await assertErrorsInCode(r'''
// @dart = 2.9
int a = null;
diff --git a/pkg/analyzer/test/src/diagnostics/import_of_legacy_library_into_null_safe_test.dart b/pkg/analyzer/test/src/diagnostics/import_of_legacy_library_into_null_safe_test.dart
index 57d7a8b..15f87f5 100644
--- a/pkg/analyzer/test/src/diagnostics/import_of_legacy_library_into_null_safe_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/import_of_legacy_library_into_null_safe_test.dart
@@ -3,7 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/src/error/codes.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../dart/resolution/context_collection_resolution.dart';
@@ -16,20 +15,6 @@
@reflectiveTest
class ImportOfLegacyLibraryInoNullSafeTest extends PubPackageResolutionTest {
- test_legacy_into_legacy() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-// @dart = 2.9
-class A {}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.9
-import 'a.dart';
-
-void f(A a) {}
-''');
- }
-
test_legacy_into_nullSafe() async {
newFile('$testPackageLibPath/a.dart', r'''
// @dart = 2.9
@@ -44,19 +29,6 @@
]);
}
- test_nullSafe_into_legacy() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.9
-import 'a.dart';
-
-void f(A a) {}
-''');
- }
-
test_nullSafe_into_nullSafe() async {
newFile('$testPackageLibPath/a.dart', r'''
class A {}
diff --git a/pkg/analyzer/test/src/diagnostics/inconsistent_language_version_override_test.dart b/pkg/analyzer/test/src/diagnostics/inconsistent_language_version_override_test.dart
index 172ced3..53323139 100644
--- a/pkg/analyzer/test/src/diagnostics/inconsistent_language_version_override_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/inconsistent_language_version_override_test.dart
@@ -3,7 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/src/error/codes.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../../generated/test_support.dart';
@@ -66,22 +65,6 @@
);
}
- test_onlyLibrary() async {
- noSoundNullSafety = false;
- await _checkLibraryAndPart(
- libraryContent: r'''
-// @dart = 2.5
-part 'b.dart';
-''',
- partContent: r'''
-part of 'a.dart';
-''',
- libraryErrors: [
- error(_errorCode, 20, 8),
- ],
- );
- }
-
test_onlyPart() async {
await _checkLibraryAndPart(
libraryContent: r'''
diff --git a/pkg/analyzer/test/src/diagnostics/invalid_override_test.dart b/pkg/analyzer/test/src/diagnostics/invalid_override_test.dart
index 0545784..8828976 100644
--- a/pkg/analyzer/test/src/diagnostics/invalid_override_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/invalid_override_test.dart
@@ -3,7 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/src/error/codes.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../dart/resolution/context_collection_resolution.dart';
@@ -215,42 +214,6 @@
''');
}
- test_method_parameter_functionTyped_optOut_extends_optIn() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-abstract class A {
- A catchError(void Function(Object) a);
-}
-''');
-
- await assertNoErrorsInCode('''
-// @dart=2.6
-import 'a.dart';
-
-class B implements A {
- A catchError(void Function(dynamic) a) => this;
-}
-''');
- }
-
- test_method_parameter_interfaceOptOut_concreteOptIn() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- void foo(Object a) {}
-}
-''');
-
- await assertNoErrorsInCode('''
-// @dart=2.6
-import 'a.dart';
-
-class B extends A {
- void foo(dynamic a);
-}
-''');
- }
-
test_mixedInheritance_1() async {
newFile('$testPackageLibPath/a.dart', r'''
class B {
diff --git a/pkg/analyzer/test/src/diagnostics/invocation_of_non_function_expression_test.dart b/pkg/analyzer/test/src/diagnostics/invocation_of_non_function_expression_test.dart
index 404689f..1d5c2b0 100644
--- a/pkg/analyzer/test/src/diagnostics/invocation_of_non_function_expression_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/invocation_of_non_function_expression_test.dart
@@ -3,7 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/src/error/codes.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../dart/resolution/context_collection_resolution.dart';
@@ -44,57 +43,4 @@
staticType: InvalidType
''');
}
-
- test_literal_null() async {
- noSoundNullSafety = false;
- await assertErrorsInCode(r'''
-// @dart = 2.9
-void f() {
- null();
-}
-''', [
- error(CompileTimeErrorCode.INVOCATION_OF_NON_FUNCTION_EXPRESSION, 28, 4),
- ]);
-
- final node = findNode.singleFunctionExpressionInvocation;
- assertResolvedNodeText(node, r'''
-FunctionExpressionInvocation
- function: NullLiteral
- literal: null
- staticType: Null*
- argumentList: ArgumentList
- leftParenthesis: (
- rightParenthesis: )
- staticElement: <null>
- staticInvokeType: InvalidType
- staticType: InvalidType
-''');
- }
-
- test_type_Null() async {
- noSoundNullSafety = false;
- await assertErrorsInCode(r'''
-// @dart = 2.9
-void f(Null a) {
- a();
-}
-''', [
- error(CompileTimeErrorCode.INVOCATION_OF_NON_FUNCTION_EXPRESSION, 34, 1),
- ]);
-
- final node = findNode.singleFunctionExpressionInvocation;
- assertResolvedNodeText(node, r'''
-FunctionExpressionInvocation
- function: SimpleIdentifier
- token: a
- staticElement: self::@function::f::@parameter::a
- staticType: Null*
- argumentList: ArgumentList
- leftParenthesis: (
- rightParenthesis: )
- staticElement: <null>
- staticInvokeType: InvalidType
- staticType: InvalidType
-''');
- }
}
diff --git a/pkg/analyzer/test/src/diagnostics/missing_required_param_test.dart b/pkg/analyzer/test/src/diagnostics/missing_required_param_test.dart
index cd42847..171613d 100644
--- a/pkg/analyzer/test/src/diagnostics/missing_required_param_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/missing_required_param_test.dart
@@ -3,7 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/src/error/codes.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../../generated/test_support.dart';
@@ -78,42 +77,6 @@
]);
}
- test_constructor_legacy_argumentGiven() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- A({required int a});
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.7
-import "a.dart";
-
-void f() {
- A(a: 0);
-}
-''');
- }
-
- test_constructor_legacy_missingArgument() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- A({required int a});
-}
-''');
- await assertErrorsInCode(r'''
-// @dart = 2.7
-import "a.dart";
-
-void f() {
- A();
-}
-''', [
- error(WarningCode.MISSING_REQUIRED_PARAM, 46, 1),
- ]);
- }
-
test_constructor_nullSafe_argumentGiven() async {
await assertNoErrorsInCode(r'''
class C {
@@ -222,38 +185,6 @@
]);
}
- test_function_legacy_argumentGiven() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-void foo({required int a}) {}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.7
-import "a.dart";
-
-void f() {
- foo(a: 0);
-}
-''');
- }
-
- test_function_legacy_missingArgument() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-void foo({required int a}) {}
-''');
- await assertErrorsInCode(r'''
-// @dart = 2.7
-import "a.dart";
-
-void f() {
- foo();
-}
-''', [
- error(WarningCode.MISSING_REQUIRED_PARAM, 46, 3),
- ]);
- }
-
test_functionInvocation() async {
await assertErrorsInCode(r'''
void Function({required int a}) f() => throw '';
@@ -294,42 +225,6 @@
]);
}
- test_method_legacy_argumentGiven() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- void foo({required int a}) {}
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.7
-import "a.dart";
-
-void f(A a) {
- a.foo(a: 0);
-}
-''');
- }
-
- test_method_legacy_missingArgument() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- void foo({required int a}) {}
-}
-''');
- await assertErrorsInCode(r'''
-// @dart = 2.7
-import "a.dart";
-
-void f(A a) {
- a.foo();
-}
-''', [
- error(WarningCode.MISSING_REQUIRED_PARAM, 51, 3),
- ]);
- }
-
test_typedef_function() async {
await assertErrorsInCode(r'''
String test(C c) => c.m()();
diff --git a/pkg/analyzer/test/src/diagnostics/missing_return_test.dart b/pkg/analyzer/test/src/diagnostics/missing_return_test.dart
index f15166a..73eabb8 100644
--- a/pkg/analyzer/test/src/diagnostics/missing_return_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/missing_return_test.dart
@@ -3,7 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/src/error/codes.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../dart/resolution/context_collection_resolution.dart';
@@ -36,23 +35,6 @@
''');
}
- test_function_sync_block_Never() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-Never foo() {
- throw 0;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.8
-import 'a.dart';
-
-int f() {
- foo();
-}
-''');
- }
-
test_function_sync_block_Null() async {
await assertNoErrorsInCode('''
Null f() {}
diff --git a/pkg/analyzer/test/src/diagnostics/mixin_inference_no_possible_substitution_test.dart b/pkg/analyzer/test/src/diagnostics/mixin_inference_no_possible_substitution_test.dart
index 138adf5..2dab1f1 100644
--- a/pkg/analyzer/test/src/diagnostics/mixin_inference_no_possible_substitution_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/mixin_inference_no_possible_substitution_test.dart
@@ -2,7 +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.
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../dart/resolution/context_collection_resolution.dart';
@@ -20,27 +19,7 @@
@reflectiveTest
class MixinInferenceNoPossibleSubstitutionTest extends PubPackageResolutionTest
- with MixinInferenceNoPossibleSubstitutionTestCases {
- test_valid_nonNullableMixins_legacyApplication() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A<T> {}
-
-mixin B<T> on A<T> {}
-mixin C<T> on A<T> {}
-''');
-
- await assertNoErrorsInCode('''
-// @dart=2.8
-import 'a.dart';
-
-class D extends A<int> with B<int>, C {}
-''');
-
- assertType(findNode.namedType('B<int>'), 'B<int*>*');
- assertType(findNode.namedType('C {}'), 'C<int*>*');
- }
-}
+ with MixinInferenceNoPossibleSubstitutionTestCases {}
mixin MixinInferenceNoPossibleSubstitutionTestCases
on PubPackageResolutionTest {
diff --git a/pkg/analyzer/test/src/diagnostics/no_default_super_constructor_test.dart b/pkg/analyzer/test/src/diagnostics/no_default_super_constructor_test.dart
index b9f0b8b..89c0b4f 100644
--- a/pkg/analyzer/test/src/diagnostics/no_default_super_constructor_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/no_default_super_constructor_test.dart
@@ -3,7 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/src/error/codes.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../dart/resolution/context_collection_resolution.dart';
@@ -80,38 +79,6 @@
''');
}
- test_super_requiredNamed_legacySubclass_explicitConstructor() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- A({required String s});
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart=2.8
-import 'a.dart';
-
-class B extends A {
- B();
-}
-''');
- }
-
- test_super_requiredNamed_legacySubclass_implicitConstructor() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- A({required String s});
-}O
-''');
- await assertNoErrorsInCode(r'''
-// @dart=2.8
-import 'a.dart';
-
-class B extends A {}
-''');
- }
-
test_super_requiredNamed_subclass_explicit() async {
await assertErrorsInCode(r'''
class A {
@@ -260,21 +227,6 @@
''');
}
- test_super_requiredPositional_subclass_explicit_language214() async {
- noSoundNullSafety = false;
- await assertErrorsInCode(r'''
-// @dart = 2.14
-class A {
- A(p);
-}
-class B extends A {
- B();
-}
-''', [
- error(CompileTimeErrorCode.NO_DEFAULT_SUPER_CONSTRUCTOR_EXPLICIT, 58, 1),
- ]);
- }
-
test_super_requiredPositional_subclass_external() async {
await assertNoErrorsInCode(r'''
class A {
diff --git a/pkg/analyzer/test/src/diagnostics/non_null_opt_out_test.dart b/pkg/analyzer/test/src/diagnostics/non_null_opt_out_test.dart
deleted file mode 100644
index 6341ba2..0000000
--- a/pkg/analyzer/test/src/diagnostics/non_null_opt_out_test.dart
+++ /dev/null
@@ -1,1875 +0,0 @@
-// 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/dart/element/element.dart';
-import 'package:analyzer/src/dart/element/member.dart';
-import 'package:analyzer/src/dart/error/syntactic_errors.dart';
-import 'package:analyzer/src/test_utilities/find_element.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
-import 'package:test/test.dart';
-import 'package:test_reflective_loader/test_reflective_loader.dart';
-
-import '../dart/resolution/context_collection_resolution.dart';
-
-main() {
- defineReflectiveSuite(() {
- defineReflectiveTests(NonNullOptOutTest);
- });
-}
-
-@reflectiveTest
-class NonNullOptOutTest extends PubPackageResolutionTest {
- ImportFindElement get _import_a {
- return findElement.importFind('package:test/a.dart');
- }
-
- test_assignment_indexExpression() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- void operator[]=(int a, int b) {}
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main(A a) {
- a[null] = null;
-}
-''');
-
- var assignment = findNode.assignment(' = null;');
- assertResolvedNodeText(assignment, r'''
-AssignmentExpression
- leftHandSide: IndexExpression
- target: SimpleIdentifier
- token: a
- staticElement: self::@function::main::@parameter::a
- staticType: A*
- leftBracket: [
- index: NullLiteral
- literal: null
- parameter: ParameterMember
- base: package:test/a.dart::@class::A::@method::[]=::@parameter::a
- isLegacy: true
- staticType: Null*
- rightBracket: ]
- staticElement: <null>
- staticType: null
- operator: =
- rightHandSide: NullLiteral
- literal: null
- parameter: ParameterMember
- base: package:test/a.dart::@class::A::@method::[]=::@parameter::b
- isLegacy: true
- staticType: Null*
- readElement: <null>
- readType: null
- writeElement: MethodMember
- base: package:test/a.dart::@class::A::@method::[]=
- isLegacy: true
- writeType: int*
- staticElement: <null>
- staticType: Null*
-''');
- }
-
- test_assignment_prefixedIdentifier_instanceTarget_class_field() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- int foo = 0;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main(A a) {
- a.foo = 0;
-}
-''');
-
- var assignment = findNode.assignment('foo =');
- assertResolvedNodeText(assignment, r'''
-AssignmentExpression
- leftHandSide: PrefixedIdentifier
- prefix: SimpleIdentifier
- token: a
- staticElement: self::@function::main::@parameter::a
- staticType: A*
- period: .
- identifier: SimpleIdentifier
- token: foo
- staticElement: <null>
- staticType: null
- staticElement: <null>
- staticType: null
- operator: =
- rightHandSide: IntegerLiteral
- literal: 0
- parameter: ParameterMember
- base: package:test/a.dart::@class::A::@setter::foo::@parameter::_foo
- isLegacy: true
- staticType: int*
- readElement: <null>
- readType: null
- writeElement: PropertyAccessorMember
- base: package:test/a.dart::@class::A::@setter::foo
- isLegacy: true
- writeType: int*
- staticElement: <null>
- staticType: int*
-''');
- }
-
- test_assignment_prefixedIdentifier_instanceTarget_extension_setter() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {}
-extension E on A {
- void set foo(int _) {}
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main(A a) {
- a.foo = 0;
-}
-''');
-
- var assignment = findNode.assignment('foo =');
- assertResolvedNodeText(assignment, r'''
-AssignmentExpression
- leftHandSide: PrefixedIdentifier
- prefix: SimpleIdentifier
- token: a
- staticElement: self::@function::main::@parameter::a
- staticType: A*
- period: .
- identifier: SimpleIdentifier
- token: foo
- staticElement: <null>
- staticType: null
- staticElement: <null>
- staticType: null
- operator: =
- rightHandSide: IntegerLiteral
- literal: 0
- parameter: ParameterMember
- base: package:test/a.dart::@extension::E::@setter::foo::@parameter::_
- isLegacy: true
- staticType: int*
- readElement: <null>
- readType: null
- writeElement: PropertyAccessorMember
- base: package:test/a.dart::@extension::E::@setter::foo
- isLegacy: true
- writeType: int*
- staticElement: <null>
- staticType: int*
-''');
- }
-
- test_assignment_prefixedIdentifier_staticTarget_class_field() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- static int foo = 0;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main() {
- A.foo = 0;
-}
-''');
-
- var assignment = findNode.assignment('foo =');
- assertResolvedNodeText(assignment, r'''
-AssignmentExpression
- leftHandSide: PrefixedIdentifier
- prefix: SimpleIdentifier
- token: A
- staticElement: package:test/a.dart::@class::A
- staticType: null
- period: .
- identifier: SimpleIdentifier
- token: foo
- staticElement: <null>
- staticType: null
- staticElement: <null>
- staticType: null
- operator: =
- rightHandSide: IntegerLiteral
- literal: 0
- parameter: ParameterMember
- base: package:test/a.dart::@class::A::@setter::foo::@parameter::_foo
- isLegacy: true
- staticType: int*
- readElement: <null>
- readType: null
- writeElement: PropertyAccessorMember
- base: package:test/a.dart::@class::A::@setter::foo
- isLegacy: true
- writeType: int*
- staticElement: <null>
- staticType: int*
-''');
- }
-
- test_assignment_prefixedIdentifier_staticTarget_extension_field() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-extension E on int {
- static int foo = 0;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main() {
- E.foo = 0;
-}
-''');
-
- var assignment = findNode.assignment('foo =');
- assertResolvedNodeText(assignment, r'''
-AssignmentExpression
- leftHandSide: PrefixedIdentifier
- prefix: SimpleIdentifier
- token: E
- staticElement: package:test/a.dart::@extension::E
- staticType: null
- period: .
- identifier: SimpleIdentifier
- token: foo
- staticElement: <null>
- staticType: null
- staticElement: <null>
- staticType: null
- operator: =
- rightHandSide: IntegerLiteral
- literal: 0
- parameter: ParameterMember
- base: package:test/a.dart::@extension::E::@setter::foo::@parameter::_foo
- isLegacy: true
- staticType: int*
- readElement: <null>
- readType: null
- writeElement: PropertyAccessorMember
- base: package:test/a.dart::@extension::E::@setter::foo
- isLegacy: true
- writeType: int*
- staticElement: <null>
- staticType: int*
-''');
- }
-
- test_assignment_prefixedIdentifier_topLevelVariable() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-int foo = 0;
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart' as p;
-
-main() {
- p.foo = 0;
-}
-''');
-
- var assignment = findNode.assignment('foo =');
- assertResolvedNodeText(assignment, r'''
-AssignmentExpression
- leftHandSide: PrefixedIdentifier
- prefix: SimpleIdentifier
- token: p
- staticElement: self::@prefix::p
- staticType: null
- period: .
- identifier: SimpleIdentifier
- token: foo
- staticElement: <null>
- staticType: null
- staticElement: <null>
- staticType: null
- operator: =
- rightHandSide: IntegerLiteral
- literal: 0
- parameter: ParameterMember
- base: package:test/a.dart::@setter::foo::@parameter::_foo
- isLegacy: true
- staticType: int*
- readElement: <null>
- readType: null
- writeElement: PropertyAccessorMember
- base: package:test/a.dart::@setter::foo
- isLegacy: true
- writeType: int*
- staticElement: <null>
- staticType: int*
-''');
- }
-
- test_assignment_propertyAccess_class_field() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- int foo = 0;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main() {
- A().foo = 0;
-}
-''');
-
- var assignment = findNode.assignment('foo =');
- assertResolvedNodeText(assignment, r'''
-AssignmentExpression
- leftHandSide: PropertyAccess
- target: InstanceCreationExpression
- constructorName: ConstructorName
- type: NamedType
- name: A
- element: package:test/a.dart::@class::A
- type: A*
- staticElement: ConstructorMember
- base: package:test/a.dart::@class::A::@constructor::new
- isLegacy: true
- argumentList: ArgumentList
- leftParenthesis: (
- rightParenthesis: )
- staticType: A*
- operator: .
- propertyName: SimpleIdentifier
- token: foo
- staticElement: <null>
- staticType: null
- staticType: null
- operator: =
- rightHandSide: IntegerLiteral
- literal: 0
- parameter: ParameterMember
- base: package:test/a.dart::@class::A::@setter::foo::@parameter::_foo
- isLegacy: true
- staticType: int*
- readElement: <null>
- readType: null
- writeElement: PropertyAccessorMember
- base: package:test/a.dart::@class::A::@setter::foo
- isLegacy: true
- writeType: int*
- staticElement: <null>
- staticType: int*
-''');
- }
-
- test_assignment_propertyAccess_extension_setter() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {}
-extension E on A {
- void set foo(int a) {}
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main() {
- A().foo = 0;
-}
-''');
-
- var assignment = findNode.assignment('foo =');
- assertResolvedNodeText(assignment, r'''
-AssignmentExpression
- leftHandSide: PropertyAccess
- target: InstanceCreationExpression
- constructorName: ConstructorName
- type: NamedType
- name: A
- element: package:test/a.dart::@class::A
- type: A*
- staticElement: ConstructorMember
- base: package:test/a.dart::@class::A::@constructor::new
- isLegacy: true
- argumentList: ArgumentList
- leftParenthesis: (
- rightParenthesis: )
- staticType: A*
- operator: .
- propertyName: SimpleIdentifier
- token: foo
- staticElement: <null>
- staticType: null
- staticType: null
- operator: =
- rightHandSide: IntegerLiteral
- literal: 0
- parameter: ParameterMember
- base: package:test/a.dart::@extension::E::@setter::foo::@parameter::a
- isLegacy: true
- staticType: int*
- readElement: <null>
- readType: null
- writeElement: PropertyAccessorMember
- base: package:test/a.dart::@extension::E::@setter::foo
- isLegacy: true
- writeType: int*
- staticElement: <null>
- staticType: int*
-''');
- }
-
- test_assignment_propertyAccess_extensionOverride_setter() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {}
-extension E on A {
- void set foo(int a) {}
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main(A a) {
- E(a).foo = 0;
-}
-''');
-
- var assignment = findNode.assignment('foo =');
- assertResolvedNodeText(assignment, r'''
-AssignmentExpression
- leftHandSide: PropertyAccess
- target: ExtensionOverride
- name: E
- argumentList: ArgumentList
- leftParenthesis: (
- arguments
- SimpleIdentifier
- token: a
- parameter: <null>
- staticElement: self::@function::main::@parameter::a
- staticType: A*
- rightParenthesis: )
- element: package:test/a.dart::@extension::E
- extendedType: A
- staticType: null
- operator: .
- propertyName: SimpleIdentifier
- token: foo
- staticElement: <null>
- staticType: null
- staticType: null
- operator: =
- rightHandSide: IntegerLiteral
- literal: 0
- parameter: ParameterMember
- base: package:test/a.dart::@extension::E::@setter::foo::@parameter::a
- isLegacy: true
- staticType: int*
- readElement: <null>
- readType: null
- writeElement: PropertyAccessorMember
- base: package:test/a.dart::@extension::E::@setter::foo
- isLegacy: true
- writeType: int*
- staticElement: <null>
- staticType: int*
-''');
- }
-
- test_assignment_propertyAccess_superTarget() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- int foo = 0;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-class B extends A {
- void bar() {
- super.foo = 0;
- }
-}
-''');
-
- var assignment = findNode.assignment('foo =');
- assertResolvedNodeText(assignment, r'''
-AssignmentExpression
- leftHandSide: PropertyAccess
- target: SuperExpression
- superKeyword: super
- staticType: B*
- operator: .
- propertyName: SimpleIdentifier
- token: foo
- staticElement: <null>
- staticType: null
- staticType: null
- operator: =
- rightHandSide: IntegerLiteral
- literal: 0
- parameter: ParameterMember
- base: package:test/a.dart::@class::A::@setter::foo::@parameter::_foo
- isLegacy: true
- staticType: int*
- readElement: <null>
- readType: null
- writeElement: PropertyAccessorMember
- base: package:test/a.dart::@class::A::@setter::foo
- isLegacy: true
- writeType: int*
- staticElement: <null>
- staticType: int*
-''');
- }
-
- test_assignment_simpleIdentifier_topLevelVariable() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-int foo = 0;
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main() {
- foo = null;
-}
-''');
-
- var assignment = findNode.assignment('foo =');
- assertResolvedNodeText(assignment, r'''
-AssignmentExpression
- leftHandSide: SimpleIdentifier
- token: foo
- staticElement: <null>
- staticType: null
- operator: =
- rightHandSide: NullLiteral
- literal: null
- parameter: ParameterMember
- base: package:test/a.dart::@setter::foo::@parameter::_foo
- isLegacy: true
- staticType: Null*
- readElement: <null>
- readType: null
- writeElement: PropertyAccessorMember
- base: package:test/a.dart::@setter::foo
- isLegacy: true
- writeType: int*
- staticElement: <null>
- staticType: Null*
-''');
- }
-
- test_binaryExpression() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- int operator+(int a) => 0;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main(A a) {
- a + null;
-}
-''');
-
- final node = findNode.singleBinaryExpression;
- assertResolvedNodeText(node, r'''
-BinaryExpression
- leftOperand: SimpleIdentifier
- token: a
- staticElement: self::@function::main::@parameter::a
- staticType: A*
- operator: +
- rightOperand: NullLiteral
- literal: null
- parameter: root::@parameter::a
- staticType: Null*
- staticElement: MethodMember
- base: package:test/a.dart::@class::A::@method::+
- isLegacy: true
- staticInvokeType: int* Function(int*)*
- staticType: int*
-''');
- }
-
- test_functionExpressionInvocation() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-int Function(int, int?)? foo;
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main() {
- foo(null, null);
-}
-''');
-
- final node = findNode.singleFunctionExpressionInvocation;
- assertResolvedNodeText(node, r'''
-FunctionExpressionInvocation
- function: SimpleIdentifier
- token: foo
- staticElement: PropertyAccessorMember
- base: package:test/a.dart::@getter::foo
- isLegacy: true
- staticType: int* Function(int*, int*)*
- argumentList: ArgumentList
- leftParenthesis: (
- arguments
- NullLiteral
- literal: null
- parameter: root::@parameter::
- staticType: Null*
- NullLiteral
- literal: null
- parameter: root::@parameter::
- staticType: Null*
- rightParenthesis: )
- staticElement: <null>
- staticInvokeType: int* Function(int*, int*)*
- staticType: int*
-''');
- }
-
- test_functionExpressionInvocation_call() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- int call(int a, int? b) => 0;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main(A a) {
- a(null, null);
-}
-''');
-
- final node = findNode.singleFunctionExpressionInvocation;
- assertResolvedNodeText(node, r'''
-FunctionExpressionInvocation
- function: SimpleIdentifier
- token: a
- staticElement: self::@function::main::@parameter::a
- staticType: A*
- argumentList: ArgumentList
- leftParenthesis: (
- arguments
- NullLiteral
- literal: null
- parameter: root::@parameter::a
- staticType: Null*
- NullLiteral
- literal: null
- parameter: root::@parameter::b
- staticType: Null*
- rightParenthesis: )
- staticElement: MethodMember
- base: package:test/a.dart::@class::A::@method::call
- isLegacy: true
- staticInvokeType: int* Function(int*, int*)*
- staticType: int*
-''');
- }
-
- test_functionExpressionInvocation_extension_staticTarget() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-extension E on int {
- static int Function(int) get foo => (_) => 0;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main() {
- E.foo(null);
-}
-''');
-
- final node = findNode.singleFunctionExpressionInvocation;
- assertResolvedNodeText(node, r'''
-FunctionExpressionInvocation
- function: PropertyAccess
- target: SimpleIdentifier
- token: E
- staticElement: package:test/a.dart::@extension::E
- staticType: null
- operator: .
- propertyName: SimpleIdentifier
- token: foo
- staticElement: PropertyAccessorMember
- base: package:test/a.dart::@extension::E::@getter::foo
- isLegacy: true
- staticType: int* Function(int*)*
- staticType: int* Function(int*)*
- argumentList: ArgumentList
- leftParenthesis: (
- arguments
- NullLiteral
- literal: null
- parameter: root::@parameter::
- staticType: Null*
- rightParenthesis: )
- staticElement: <null>
- staticInvokeType: int* Function(int*)*
- staticType: int*
-''');
- }
-
- test_instanceCreation() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- A(int a, int? b);
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main() {
- A(null, null);
-}
-''');
- var instanceCreation = findNode.instanceCreation('A(null');
- assertType(instanceCreation, 'A*');
-
- _assertLegacyMember(
- instanceCreation.constructorName.staticElement,
- _import_a.unnamedConstructor('A'),
- );
- }
-
- test_instanceCreation_generic() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A<T> {
- A(T a, T? b);
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main() {
- A<int>(null, null);
-}
-''');
- var instanceCreation = findNode.instanceCreation('A<int>(null');
- assertType(instanceCreation, 'A<int*>*');
-
- _assertLegacyMember(
- instanceCreation.constructorName.staticElement,
- _import_a.unnamedConstructor('A'),
- expectedSubstitution: {'T': 'int*'},
- );
- }
-
- test_instanceCreation_generic_instantiateToBounds() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A<T extends num> {}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-var v = A();
-''');
-
- var v = findElement.topVar('v');
- assertType(v.type, 'A<num*>*');
- }
-
- test_methodInvocation_extension_functionTarget() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-extension E on void Function() {
- int foo(int a) => 0;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main(void Function() a) {
- a.foo(null);
-}
-''');
-
- final node = findNode.singleMethodInvocation;
- assertResolvedNodeText(node, r'''
-MethodInvocation
- target: SimpleIdentifier
- token: a
- staticElement: self::@function::main::@parameter::a
- staticType: void Function()*
- operator: .
- methodName: SimpleIdentifier
- token: foo
- staticElement: MethodMember
- base: package:test/a.dart::@extension::E::@method::foo
- isLegacy: true
- staticType: int* Function(int*)*
- argumentList: ArgumentList
- leftParenthesis: (
- arguments
- NullLiteral
- literal: null
- parameter: root::@parameter::a
- staticType: Null*
- rightParenthesis: )
- staticInvokeType: int* Function(int*)*
- staticType: int*
-''');
- }
-
- test_methodInvocation_extension_interfaceTarget() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-extension E on int {
- int foo(int a) => 0;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main() {
- 0.foo(null);
-}
-''');
-
- final node = findNode.singleMethodInvocation;
- assertResolvedNodeText(node, r'''
-MethodInvocation
- target: IntegerLiteral
- literal: 0
- staticType: int*
- operator: .
- methodName: SimpleIdentifier
- token: foo
- staticElement: MethodMember
- base: package:test/a.dart::@extension::E::@method::foo
- isLegacy: true
- staticType: int* Function(int*)*
- argumentList: ArgumentList
- leftParenthesis: (
- arguments
- NullLiteral
- literal: null
- parameter: root::@parameter::a
- staticType: Null*
- rightParenthesis: )
- staticInvokeType: int* Function(int*)*
- staticType: int*
-''');
- }
-
- test_methodInvocation_extension_nullTarget() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {}
-extension E on A {
- int foo(int a) => 0;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-class B extends A {
- void bar() {
- foo(null);
- }
-}
-''');
-
- final node = findNode.singleMethodInvocation;
- assertResolvedNodeText(node, r'''
-MethodInvocation
- methodName: SimpleIdentifier
- token: foo
- staticElement: MethodMember
- base: package:test/a.dart::@extension::E::@method::foo
- isLegacy: true
- staticType: int* Function(int*)*
- argumentList: ArgumentList
- leftParenthesis: (
- arguments
- NullLiteral
- literal: null
- parameter: root::@parameter::a
- staticType: Null*
- rightParenthesis: )
- staticInvokeType: int* Function(int*)*
- staticType: int*
-''');
- }
-
- test_methodInvocation_extension_staticTarget() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-extension E on int {
- static int foo(int a) => 0;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main() {
- E.foo(null);
-}
-''');
-
- final node = findNode.singleMethodInvocation;
- assertResolvedNodeText(node, r'''
-MethodInvocation
- target: SimpleIdentifier
- token: E
- staticElement: package:test/a.dart::@extension::E
- staticType: null
- operator: .
- methodName: SimpleIdentifier
- token: foo
- staticElement: MethodMember
- base: package:test/a.dart::@extension::E::@method::foo
- isLegacy: true
- staticType: int* Function(int*)*
- argumentList: ArgumentList
- leftParenthesis: (
- arguments
- NullLiteral
- literal: null
- parameter: root::@parameter::a
- staticType: Null*
- rightParenthesis: )
- staticInvokeType: int* Function(int*)*
- staticType: int*
-''');
- }
-
- test_methodInvocation_extensionOverride() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-extension E on int {
- int foo(int a) => 0;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main() {
- E(0).foo(null);
-}
-''');
-
- final node = findNode.singleMethodInvocation;
- assertResolvedNodeText(node, r'''
-MethodInvocation
- target: ExtensionOverride
- name: E
- argumentList: ArgumentList
- leftParenthesis: (
- arguments
- IntegerLiteral
- literal: 0
- parameter: <null>
- staticType: int*
- rightParenthesis: )
- element: package:test/a.dart::@extension::E
- extendedType: int
- staticType: null
- operator: .
- methodName: SimpleIdentifier
- token: foo
- staticElement: MethodMember
- base: package:test/a.dart::@extension::E::@method::foo
- isLegacy: true
- staticType: int* Function(int*)*
- argumentList: ArgumentList
- leftParenthesis: (
- arguments
- NullLiteral
- literal: null
- parameter: root::@parameter::a
- staticType: Null*
- rightParenthesis: )
- staticInvokeType: int* Function(int*)*
- staticType: int*
-''');
- }
-
- test_methodInvocation_function() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-int foo(int a, int? b) => 0;
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main() {
- foo(null, null);
-}
-''');
-
- final node = findNode.singleMethodInvocation;
- assertResolvedNodeText(node, r'''
-MethodInvocation
- methodName: SimpleIdentifier
- token: foo
- staticElement: FunctionMember
- base: package:test/a.dart::@function::foo
- isLegacy: true
- staticType: int* Function(int*, int*)*
- argumentList: ArgumentList
- leftParenthesis: (
- arguments
- NullLiteral
- literal: null
- parameter: root::@parameter::a
- staticType: Null*
- NullLiteral
- literal: null
- parameter: root::@parameter::b
- staticType: Null*
- rightParenthesis: )
- staticInvokeType: int* Function(int*, int*)*
- staticType: int*
-''');
- }
-
- test_methodInvocation_function_prefixed() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-int foo(int a, int? b) => 0;
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart' as p;
-
-main() {
- p.foo(null, null);
-}
-''');
-
- final node = findNode.singleMethodInvocation;
- assertResolvedNodeText(node, r'''
-MethodInvocation
- target: SimpleIdentifier
- token: p
- staticElement: self::@prefix::p
- staticType: null
- operator: .
- methodName: SimpleIdentifier
- token: foo
- staticElement: FunctionMember
- base: package:test/a.dart::@function::foo
- isLegacy: true
- staticType: int* Function(int*, int*)*
- argumentList: ArgumentList
- leftParenthesis: (
- arguments
- NullLiteral
- literal: null
- parameter: root::@parameter::a
- staticType: Null*
- NullLiteral
- literal: null
- parameter: root::@parameter::b
- staticType: Null*
- rightParenthesis: )
- staticInvokeType: int* Function(int*, int*)*
- staticType: int*
-''');
- }
-
- test_methodInvocation_method_cascade() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- int foo(int a, int? b) => 0;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main(A a) {
- a..foo(null, null);
-}
-''');
-
- final node = findNode.singleMethodInvocation;
- assertResolvedNodeText(node, r'''
-MethodInvocation
- operator: ..
- methodName: SimpleIdentifier
- token: foo
- staticElement: MethodMember
- base: package:test/a.dart::@class::A::@method::foo
- isLegacy: true
- staticType: int* Function(int*, int*)*
- argumentList: ArgumentList
- leftParenthesis: (
- arguments
- NullLiteral
- literal: null
- parameter: root::@parameter::a
- staticType: Null*
- NullLiteral
- literal: null
- parameter: root::@parameter::b
- staticType: Null*
- rightParenthesis: )
- staticInvokeType: int* Function(int*, int*)*
- staticType: int*
-''');
- }
-
- test_methodInvocation_method_interfaceTarget() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- int foo(int a, int? b) => 0;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main(A a) {
- a.foo(null, null);
-}
-''');
-
- final node = findNode.singleMethodInvocation;
- assertResolvedNodeText(node, r'''
-MethodInvocation
- target: SimpleIdentifier
- token: a
- staticElement: self::@function::main::@parameter::a
- staticType: A*
- operator: .
- methodName: SimpleIdentifier
- token: foo
- staticElement: MethodMember
- base: package:test/a.dart::@class::A::@method::foo
- isLegacy: true
- staticType: int* Function(int*, int*)*
- argumentList: ArgumentList
- leftParenthesis: (
- arguments
- NullLiteral
- literal: null
- parameter: root::@parameter::a
- staticType: Null*
- NullLiteral
- literal: null
- parameter: root::@parameter::b
- staticType: Null*
- rightParenthesis: )
- staticInvokeType: int* Function(int*, int*)*
- staticType: int*
-''');
- }
-
- test_methodInvocation_method_nullTarget() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- int foo(int a, int? b) => 0;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-class B extends A {
- m() {
- foo(null, null);
- }
-}
-''');
-
- final node = findNode.singleMethodInvocation;
- assertResolvedNodeText(node, r'''
-MethodInvocation
- methodName: SimpleIdentifier
- token: foo
- staticElement: MethodMember
- base: package:test/a.dart::@class::A::@method::foo
- isLegacy: true
- staticType: int* Function(int*, int*)*
- argumentList: ArgumentList
- leftParenthesis: (
- arguments
- NullLiteral
- literal: null
- parameter: root::@parameter::a
- staticType: Null*
- NullLiteral
- literal: null
- parameter: root::@parameter::b
- staticType: Null*
- rightParenthesis: )
- staticInvokeType: int* Function(int*, int*)*
- staticType: int*
-''');
- }
-
- test_methodInvocation_method_staticTarget() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- static int foo(int a, int? b) => 0;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main() {
- A.foo(null, null);
-}
-''');
-
- final node = findNode.singleMethodInvocation;
- assertResolvedNodeText(node, r'''
-MethodInvocation
- target: SimpleIdentifier
- token: A
- staticElement: package:test/a.dart::@class::A
- staticType: null
- operator: .
- methodName: SimpleIdentifier
- token: foo
- staticElement: MethodMember
- base: package:test/a.dart::@class::A::@method::foo
- isLegacy: true
- staticType: int* Function(int*, int*)*
- argumentList: ArgumentList
- leftParenthesis: (
- arguments
- NullLiteral
- literal: null
- parameter: root::@parameter::a
- staticType: Null*
- NullLiteral
- literal: null
- parameter: root::@parameter::b
- staticType: Null*
- rightParenthesis: )
- staticInvokeType: int* Function(int*, int*)*
- staticType: int*
-''');
- }
-
- test_methodInvocation_method_superTarget() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- int foo(int a, int? b) => 0;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-class B extends A {
- m() {
- super.foo(null, null);
- }
-}
-''');
-
- final node = findNode.singleMethodInvocation;
- assertResolvedNodeText(node, r'''
-MethodInvocation
- target: SuperExpression
- superKeyword: super
- staticType: B*
- operator: .
- methodName: SimpleIdentifier
- token: foo
- staticElement: MethodMember
- base: package:test/a.dart::@class::A::@method::foo
- isLegacy: true
- staticType: int* Function(int*, int*)*
- argumentList: ArgumentList
- leftParenthesis: (
- arguments
- NullLiteral
- literal: null
- parameter: root::@parameter::a
- staticType: Null*
- NullLiteral
- literal: null
- parameter: root::@parameter::b
- staticType: Null*
- rightParenthesis: )
- staticInvokeType: int* Function(int*, int*)*
- staticType: int*
-''');
- }
-
- test_nnbd_optOut_invalidSyntax() async {
- noSoundNullSafety = false;
- await assertErrorsInCode('''
-// @dart = 2.2
-// NNBD syntax is not allowed
-f(x, z) { (x is String?) ? x : z; }
-''', [error(ParserErrorCode.EXPERIMENT_NOT_ENABLED, 67, 1)]);
- }
-
- test_nnbd_optOut_late() async {
- noSoundNullSafety = false;
- await assertNoErrorsInCode('''
-// @dart = 2.2
-class C {
- // "late" is allowed as an identifier
- int late;
-}
-''');
- }
-
- test_nnbd_optOut_transformsOptedInSignatures() async {
- noSoundNullSafety = false;
- await assertNoErrorsInCode('''
-// @dart = 2.2
-f(String x) {
- x + null; // OK because we're in a nullable library.
-}
-''');
- }
-
- test_postfixExpression() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- A operator+(int a) => this;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main(A a) {
- a++;
-}
-''');
- var prefixExpression = findNode.postfix('a++');
- assertType(prefixExpression, 'A*');
-
- var element = prefixExpression.staticElement as MethodElement;
- _assertLegacyMember(element, _import_a.method('+'));
- }
-
- test_prefixExpression() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- int operator-() => 0;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main(A a) {
- -a;
-}
-''');
- var prefixExpression = findNode.prefix('-a');
- assertType(prefixExpression, 'int*');
-
- var element = prefixExpression.staticElement as MethodElement;
- _assertLegacyMember(element, _import_a.method('unary-'));
- }
-
- test_read_indexExpression_class() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- int operator[](int a) => 0;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main(A a) {
- a[null];
-}
-''');
- var indexExpression = findNode.index('a[');
- assertType(indexExpression, 'int*');
-
- var element = indexExpression.staticElement as MethodElement;
- _assertLegacyMember(element, _import_a.method('[]'));
- }
-
- test_read_prefixedIdentifier_instanceTarget_class_field() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- int foo;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main(A a) {
- a.foo;
-}
-''');
- var prefixedIdentifier = findNode.prefixed('a.foo');
- assertType(prefixedIdentifier, 'int*');
-
- var identifier = prefixedIdentifier.identifier;
- assertType(identifier, 'int*');
-
- var element = identifier.staticElement as PropertyAccessorElement;
- _assertLegacyMember(element, _import_a.getter('foo'));
- }
-
- test_read_prefixedIdentifier_instanceTarget_extension_getter() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {}
-extension E on A {
- int get foo => 0;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main(A a) {
- a.foo;
-}
-''');
- var prefixedIdentifier = findNode.prefixed('a.foo');
- assertType(prefixedIdentifier, 'int*');
-
- var identifier = prefixedIdentifier.identifier;
- assertType(identifier, 'int*');
-
- var element = identifier.staticElement as PropertyAccessorElement;
- _assertLegacyMember(element, _import_a.getter('foo'));
- }
-
- test_read_prefixedIdentifier_staticTarget_class_field() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- static int foo;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main() {
- A.foo;
-}
-''');
- var prefixedIdentifier = findNode.prefixed('A.foo');
- assertType(prefixedIdentifier, 'int*');
-
- var identifier = prefixedIdentifier.identifier;
- assertType(identifier, 'int*');
-
- var element = identifier.staticElement as PropertyAccessorElement;
- _assertLegacyMember(element, _import_a.getter('foo'));
- }
-
- test_read_prefixedIdentifier_staticTarget_class_method() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- static int foo(int a) => 0;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main() {
- A.foo;
-}
-''');
- var prefixedIdentifier = findNode.prefixed('A.foo');
- assertType(prefixedIdentifier, 'int* Function(int*)*');
-
- var identifier = prefixedIdentifier.identifier;
- assertType(identifier, 'int* Function(int*)*');
-
- var element = identifier.staticElement as MethodElement;
- _assertLegacyMember(element, _import_a.method('foo'));
- }
-
- test_read_prefixedIdentifier_staticTarget_extension_field() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-extension E {
- static int foo;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main() {
- E.foo;
-}
-''');
- var prefixedIdentifier = findNode.prefixed('E.foo');
- assertType(prefixedIdentifier, 'int*');
-
- var identifier = prefixedIdentifier.identifier;
- assertType(identifier, 'int*');
-
- var element = identifier.staticElement as PropertyAccessorElement;
- _assertLegacyMember(element, _import_a.getter('foo'));
- }
-
- test_read_prefixedIdentifier_staticTarget_extension_method() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-extension E {
- static int foo(int a) => 0;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main() {
- E.foo;
-}
-''');
- var prefixedIdentifier = findNode.prefixed('E.foo');
- assertType(prefixedIdentifier, 'int* Function(int*)*');
-
- var identifier = prefixedIdentifier.identifier;
- assertType(identifier, 'int* Function(int*)*');
-
- var element = identifier.staticElement as MethodElement;
- _assertLegacyMember(element, _import_a.method('foo'));
- }
-
- test_read_prefixedIdentifier_topLevelVariable() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-int foo = 0;
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart' as p;
-
-main() {
- p.foo;
-}
-''');
- var prefixedIdentifier = findNode.prefixed('p.foo');
- assertType(prefixedIdentifier, 'int*');
-
- var identifier = prefixedIdentifier.identifier;
- assertType(identifier, 'int*');
-
- var element = identifier.staticElement as PropertyAccessorElement;
- _assertLegacyMember(element, _import_a.topGet('foo'));
- }
-
- test_read_propertyAccessor_class_field() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- int foo = 0;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main() {
- A().foo;
-}
-''');
- var propertyAccess = findNode.propertyAccess('foo');
- assertType(propertyAccess, 'int*');
-
- var identifier = propertyAccess.propertyName;
- assertType(identifier, 'int*');
-
- var element = identifier.staticElement as PropertyAccessorElement;
- _assertLegacyMember(element, _import_a.getter('foo'));
- }
-
- test_read_propertyAccessor_class_method() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- int foo() => 0;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main() {
- A().foo;
-}
-''');
- var propertyAccess = findNode.propertyAccess('foo');
- assertType(propertyAccess, 'int* Function()*');
-
- var identifier = propertyAccess.propertyName;
- assertType(identifier, 'int* Function()*');
-
- var element = identifier.staticElement as MethodElement;
- _assertLegacyMember(element, _import_a.method('foo'));
- }
-
- test_read_propertyAccessor_extensionOverride_getter() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {}
-extension E on A {
- int get foo => 0;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main(A a) {
- E(a).foo;
-}
-''');
- var propertyAccess = findNode.propertyAccess('foo');
- assertType(propertyAccess, 'int*');
-
- var identifier = propertyAccess.propertyName;
- assertType(identifier, 'int*');
-
- var element = identifier.staticElement as PropertyAccessorElement;
- _assertLegacyMember(element, _import_a.getter('foo'));
- }
-
- test_read_propertyAccessor_superTarget() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- int foo = 0;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-class B extends A {
- void bar() {
- super.foo;
- }
-}
-''');
- var propertyAccess = findNode.propertyAccess('foo');
- assertType(propertyAccess, 'int*');
-
- var identifier = propertyAccess.propertyName;
- assertType(identifier, 'int*');
-
- var element = identifier.staticElement as PropertyAccessorElement;
- _assertLegacyMember(element, _import_a.getter('foo'));
- }
-
- test_read_simpleIdentifier_class_field() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- int foo = 0;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-class B extends A {
- void bar() {
- foo;
- }
-}
-''');
- var identifier = findNode.simple('foo');
- assertType(identifier, 'int*');
-
- var element = identifier.staticElement as PropertyAccessorElement;
- _assertLegacyMember(element, _import_a.getter('foo'));
- }
-
- test_read_simpleIdentifier_class_method() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- int foo(int a) => 0;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-class B extends A {
- void bar() {
- foo;
- }
-}
-''');
- var identifier = findNode.simple('foo');
- assertType(identifier, 'int* Function(int*)*');
-
- var element = identifier.staticElement as MethodElement;
- _assertLegacyMember(element, _import_a.method('foo'));
- }
-
- test_read_simpleIdentifier_extension_getter() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {}
-extension E on A {
- int get foo => 0;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-class B extends A {
- void bar() {
- foo;
- }
-}
-''');
- var identifier = findNode.simple('foo');
- assertType(identifier, 'int*');
-
- var element = identifier.staticElement as PropertyAccessorElement;
- _assertLegacyMember(element, _import_a.getter('foo'));
- }
-
- test_read_simpleIdentifier_extension_method() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {}
-extension E on A {
- int foo(int a) => 0;
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-class B extends A {
- void bar() {
- foo;
- }
-}
-''');
- var identifier = findNode.simple('foo');
- assertType(identifier, 'int* Function(int*)*');
-
- var element = identifier.staticElement as MethodElement;
- _assertLegacyMember(element, _import_a.method('foo'));
- }
-
- test_read_simpleIdentifier_topLevelVariable() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-int foo = 0;
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-main() {
- foo;
-}
-''');
- var identifier = findNode.simple('foo');
- assertType(identifier, 'int*');
-
- var element = identifier.staticElement as PropertyAccessorElement;
- _assertLegacyMember(element, _import_a.topGet('foo'));
- }
-
- test_superConstructorInvocation() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- A(int a, int? b);
-}
-''');
- await assertNoErrorsInCode(r'''
-// @dart = 2.5
-import 'a.dart';
-
-class B extends A {
- B() : super(null, null);
-}
-''');
- var instanceCreation = findNode.superConstructorInvocation('super(');
-
- _assertLegacyMember(
- instanceCreation.staticElement,
- _import_a.unnamedConstructor('A'),
- );
- }
-
- void _assertLegacyMember(
- Element? actualElement,
- Element declaration, {
- Map<String, String> expectedSubstitution = const {},
- }) {
- var actualMember = actualElement as Member;
- expect(actualMember.declaration, same(declaration));
- expect(actualMember.isLegacy, isTrue);
- assertSubstitution(actualMember.substitution, expectedSubstitution);
- }
-}
diff --git a/pkg/analyzer/test/src/diagnostics/non_nullable_equals_parameter_test.dart b/pkg/analyzer/test/src/diagnostics/non_nullable_equals_parameter_test.dart
index a05854e..e143633 100644
--- a/pkg/analyzer/test/src/diagnostics/non_nullable_equals_parameter_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/non_nullable_equals_parameter_test.dart
@@ -3,7 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/src/error/codes.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../dart/resolution/context_collection_resolution.dart';
@@ -52,21 +51,6 @@
''');
}
- test_inheritedFromObject_preNullSafe() async {
- try {
- noSoundNullSafety = false;
- await assertNoErrorsInCode(r'''
-// @dart=2.9
-class C {
- @override
- bool operator ==(other) => false;
-}
-''');
- } finally {
- noSoundNullSafety = true;
- }
- }
-
test_int() async {
await assertNoErrorsInCode(r'''
class C {
diff --git a/pkg/analyzer/test/src/diagnostics/null_argument_to_non_null_type_test.dart b/pkg/analyzer/test/src/diagnostics/null_argument_to_non_null_type_test.dart
index dcb9539..7739951 100644
--- a/pkg/analyzer/test/src/diagnostics/null_argument_to_non_null_type_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/null_argument_to_non_null_type_test.dart
@@ -3,7 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/src/error/codes.g.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../dart/resolution/context_collection_resolution.dart';
@@ -36,20 +35,6 @@
''');
}
- test_legacy() async {
- noSoundNullSafety = false;
- await assertNoErrorsInCode('''
-// @dart=2.9
-import 'dart:async';
-
-void f() {
- final c = Completer<int>();
- c.complete();
- c.complete(null);
-}
-''');
- }
-
test_null() async {
await assertErrorsInCode('''
import 'dart:async';
@@ -99,17 +84,6 @@
''');
}
- test_legacy() async {
- noSoundNullSafety = false;
- await assertNoErrorsInCode('''
-// @dart=2.9
-void f() {
- Future<int>.value();
- Future<int>.value(null);
-}
-''');
- }
-
test_null() async {
await assertErrorsInCode('''
void foo() => Future<int>.value(null);
diff --git a/pkg/analyzer/test/src/diagnostics/nullable_type_in_catch_clause_test.dart b/pkg/analyzer/test/src/diagnostics/nullable_type_in_catch_clause_test.dart
index 114f47c..bf173c5 100644
--- a/pkg/analyzer/test/src/diagnostics/nullable_type_in_catch_clause_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/nullable_type_in_catch_clause_test.dart
@@ -3,7 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/src/error/codes.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../dart/resolution/context_collection_resolution.dart';
@@ -108,17 +107,4 @@
error(WarningCode.NULLABLE_TYPE_IN_CATCH_CLAUSE, 40, 1),
]);
}
-
- test_optOut() async {
- noSoundNullSafety = false;
- await assertNoErrorsInCode('''
-// @dart = 2.7
-
-void f() {
- try {
- } on dynamic {
- }
-}
-''');
- }
}
diff --git a/pkg/analyzer/test/src/diagnostics/sdk_version_never_test.dart b/pkg/analyzer/test/src/diagnostics/sdk_version_never_test.dart
index 976946e..82997bd 100644
--- a/pkg/analyzer/test/src/diagnostics/sdk_version_never_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/sdk_version_never_test.dart
@@ -3,7 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/src/error/codes.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../dart/resolution/context_collection_resolution.dart';
@@ -23,16 +22,6 @@
Never foo = (throw 42);
''');
}
-
- test_experimentEnabled_libraryOptedOut() async {
- noSoundNullSafety = false;
- await verifyVersion('>=2.7.0', r'''
-// @dart = 2.7
-Never foo = (throw 42);
-''', expectedErrors: [
- error(WarningCode.SDK_VERSION_NEVER, 15, 5),
- ]);
- }
}
@reflectiveTest
diff --git a/pkg/analyzer/test/src/diagnostics/test_all.dart b/pkg/analyzer/test/src/diagnostics/test_all.dart
index 8227688..a153557 100644
--- a/pkg/analyzer/test/src/diagnostics/test_all.dart
+++ b/pkg/analyzer/test/src/diagnostics/test_all.dart
@@ -636,7 +636,6 @@
as non_generative_implicit_constructor;
import 'non_native_function_type_argument_to_pointer_test.dart'
as non_native_function_type_argument_to_pointer;
-import 'non_null_opt_out_test.dart' as non_null_opt_out;
import 'non_nullable_equals_parameter_test.dart' as non_null_equals_parameters;
import 'non_positive_array_dimension_test.dart' as non_positive_array_dimension;
import 'non_sized_type_argument_test.dart' as non_sized_type_argument;
@@ -1327,7 +1326,6 @@
non_generative_constructor.main();
non_generative_implicit_constructor.main();
non_native_function_type_argument_to_pointer.main();
- non_null_opt_out.main();
non_null_equals_parameters.main();
non_positive_array_dimension.main();
non_sized_type_argument.main();
diff --git a/pkg/analyzer/test/src/diagnostics/type_argument_not_matching_bounds_test.dart b/pkg/analyzer/test/src/diagnostics/type_argument_not_matching_bounds_test.dart
index c864b59..4245068 100644
--- a/pkg/analyzer/test/src/diagnostics/type_argument_not_matching_bounds_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/type_argument_not_matching_bounds_test.dart
@@ -3,7 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/src/error/codes.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../dart/resolution/context_collection_resolution.dart';
@@ -61,56 +60,6 @@
]);
}
- test_extends_optIn_fromOptOut_Null() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A<X extends int> {}
-''');
-
- await assertNoErrorsInCode(r'''
-// @dart=2.6
-import 'a.dart';
-
-class A1<T extends Null> extends A<T> {}
-''');
- }
-
- test_extends_optIn_fromOptOut_otherTypeParameter() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-void foo<T extends U, U>() {
-}
-''');
-
- await assertNoErrorsInCode(r'''
-// @dart=2.6
-import 'a.dart';
-
-class A {}
-class B extends A {}
-
-main() {
- foo<B, A>();
-}
-''');
- }
-
- test_extensionOverride_optIn_fromOptOut_Null() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-extension E<X extends int> on List<X> {
- void m() {}
-}
-''');
-
- await assertNoErrorsInCode(r'''
-// @dart=2.6
-import 'a.dart';
-
-f() => E<Null>([]).m();
-''');
- }
-
test_extensionType_superBounded() async {
await assertErrorsInCode('''
extension type A<T extends A<T>>(int it) {}
@@ -182,20 +131,6 @@
''');
}
- test_instanceCreation_optIn_fromOptOut_Null() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A<X extends int> {}
-''');
-
- await assertNoErrorsInCode(r'''
-// @dart=2.6
-import 'a.dart';
-
-f() => A<Null>();
-''');
- }
-
test_metadata_matching() async {
await assertNoErrorsInCode(r'''
class A<T extends num> {
@@ -259,21 +194,6 @@
]);
}
- test_methodInvocation_optIn_fromOptOut_Null() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-class A {
- void m<X extends int>() {}
-''');
-
- await assertNoErrorsInCode(r'''
-// @dart=2.6
-import 'a.dart';
-
-f() => A().m<Null>();
-''');
- }
-
test_nonFunctionTypeAlias_body_typeArgument_mismatch() async {
await assertErrorsInCode(r'''
class A {}
@@ -378,24 +298,6 @@
]);
}
- test_redirectingConstructor_optIn_fromOptOut_Null() async {
- noSoundNullSafety = false;
- newFile('$testPackageLibPath/a.dart', r'''
-import 'test.dart';
-
-class A<X extends int> implements B {}
-''');
-
- await assertNoErrorsInCode(r'''
-// @dart=2.6
-import 'a.dart';
-
-class B {
- factory B() = A<Null>;
-}
-''');
- }
-
test_regression_42196() async {
await assertNoErrorsInCode(r'''
typedef G<X> = Function(X);
diff --git a/pkg/analyzer/test/src/diagnostics/undefined_method_test.dart b/pkg/analyzer/test/src/diagnostics/undefined_method_test.dart
index 1092beb..7cb569f 100644
--- a/pkg/analyzer/test/src/diagnostics/undefined_method_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/undefined_method_test.dart
@@ -3,7 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/src/error/codes.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../dart/resolution/context_collection_resolution.dart';
@@ -153,16 +152,6 @@
]);
}
- test_leastUpperBoundWithNull() async {
- noSoundNullSafety = false;
- await assertErrorsInCode('''
-// @dart = 2.9
-f(bool b, int i) => (b ? null : i).foo();
-''', [
- error(CompileTimeErrorCode.UNDEFINED_METHOD, 50, 3),
- ]);
- }
-
test_method_undefined() async {
await assertErrorsInCode(r'''
class C {
@@ -217,19 +206,6 @@
]);
}
- test_method_undefined_onNull() async {
- noSoundNullSafety = false;
- await assertErrorsInCode(r'''
-// @dart = 2.9
-Null f(int x) => null;
-main() {
- f(42).abs();
-}
-''', [
- error(CompileTimeErrorCode.UNDEFINED_METHOD, 55, 3),
- ]);
- }
-
test_static_conditionalAccess_defined() async {
await assertErrorsInCode('''
class A {
diff --git a/pkg/analyzer/test/src/diagnostics/unnecessary_null_comparison_test.dart b/pkg/analyzer/test/src/diagnostics/unnecessary_null_comparison_test.dart
index bc848f8..89f1608 100644
--- a/pkg/analyzer/test/src/diagnostics/unnecessary_null_comparison_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/unnecessary_null_comparison_test.dart
@@ -3,7 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/src/error/codes.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../dart/resolution/context_collection_resolution.dart';
@@ -46,17 +45,6 @@
]);
}
- test_equal_legacyLibrary() async {
- noSoundNullSafety = false;
- await assertNoErrorsInCode('''
-// @dart = 2.5
-f(int a) {
- a == null;
- null == a;
-}
-''');
- }
-
test_equal_notNullable() async {
await assertErrorsInCode('''
f(int a) {
@@ -136,17 +124,6 @@
]);
}
- test_notEqual_legacyLibrary() async {
- noSoundNullSafety = false;
- await assertNoErrorsInCode('''
-// @dart = 2.5
-f(int a) {
- a != null;
- null != a;
-}
-''');
- }
-
test_notEqual_notNullable() async {
await assertErrorsInCode('''
f(int a) {
diff --git a/pkg/analyzer/test/src/diagnostics/wrong_number_of_parameters_for_operator_test.dart b/pkg/analyzer/test/src/diagnostics/wrong_number_of_parameters_for_operator_test.dart
index 6ef5b85..9ee48c6 100644
--- a/pkg/analyzer/test/src/diagnostics/wrong_number_of_parameters_for_operator_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/wrong_number_of_parameters_for_operator_test.dart
@@ -3,7 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/src/error/codes.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../dart/resolution/context_collection_resolution.dart';
@@ -35,27 +34,6 @@
await _checkTooFewAndTooMany('[]');
}
- test_compound_assignment_ok_in_legacy_code() async {
- // Prior to the fix for https://github.com/dart-lang/sdk/issues/46569,
- // attempting to use a binary operator with no args as part of a compound
- // assignment would crash the analyzer. Check that the crash no longer
- // occurs.
- noSoundNullSafety = false;
- await assertErrorsInCode('''
-// @dart=2.9
-class C {
- C operator+() => C();
-}
-
-void f(C c) {
- c += 1;
-}
-''', [
- error(
- CompileTimeErrorCode.WRONG_NUMBER_OF_PARAMETERS_FOR_OPERATOR, 35, 1),
- ]);
- }
-
test_correct_number_of_parameters_binary() async {
await _checkCorrectSingle("<");
await _checkCorrectSingle(">");
diff --git a/pkg/analyzer_cli/lib/src/driver.dart b/pkg/analyzer_cli/lib/src/driver.dart
index dab50cd..093d85d 100644
--- a/pkg/analyzer_cli/lib/src/driver.dart
+++ b/pkg/analyzer_cli/lib/src/driver.dart
@@ -25,7 +25,6 @@
import 'package:analyzer/src/task/options.dart';
import 'package:analyzer/src/util/file_paths.dart' as file_paths;
import 'package:analyzer/src/util/yaml.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:analyzer/src/workspace/pub.dart';
import 'package:analyzer_cli/src/analyzer_impl.dart';
import 'package:analyzer_cli/src/batch_mode.dart';
@@ -93,7 +92,6 @@
}
_isStarted = true;
var startTime = DateTime.now().millisecondsSinceEpoch;
- noSoundNullSafety = false;
linter.registerLintRules();
diff --git a/pkg/linter/test/rule_test.dart b/pkg/linter/test/rule_test.dart
index 0b9de67..fc8d2a6 100644
--- a/pkg/linter/test/rule_test.dart
+++ b/pkg/linter/test/rule_test.dart
@@ -13,7 +13,6 @@
import 'package:analyzer/src/generated/engine.dart';
import 'package:analyzer/src/lint/io.dart';
import 'package:analyzer/src/lint/registry.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:linter/src/analyzer.dart';
import 'package:linter/src/ast.dart';
import 'package:linter/src/rules.dart';
@@ -184,17 +183,9 @@
throw Exception('No rule found defined at: ${file.path}');
}
- // Disable this check until migration is complete internally.
- noSoundNullSafety = false;
-
- try {
- var errorInfos = await _getErrorInfos(ruleName, file,
- useMockSdk: useMockSdk, analysisOptions: analysisOptions);
- _validateExpectedLints(file, errorInfos,
- analysisOptions: analysisOptions);
- } finally {
- noSoundNullSafety = true;
- }
+ var errorInfos = await _getErrorInfos(ruleName, file,
+ useMockSdk: useMockSdk, analysisOptions: analysisOptions);
+ _validateExpectedLints(file, errorInfos, analysisOptions: analysisOptions);
});
}
diff --git a/pkg/linter/test/rules/avoid_function_literals_in_foreach_calls_test.dart b/pkg/linter/test/rules/avoid_function_literals_in_foreach_calls_test.dart
index 6352970..1feff957 100644
--- a/pkg/linter/test/rules/avoid_function_literals_in_foreach_calls_test.dart
+++ b/pkg/linter/test/rules/avoid_function_literals_in_foreach_calls_test.dart
@@ -2,7 +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.
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../rule_test_support.dart';
@@ -10,7 +9,6 @@
main() {
defineReflectiveSuite(() {
defineReflectiveTests(AvoidFunctionLiteralsInForeachCalls);
- defineReflectiveTests(AvoidFunctionLiteralsInForeachCallsPreNNBDTest);
});
}
@@ -144,37 +142,3 @@
''');
}
}
-
-@reflectiveTest
-class AvoidFunctionLiteralsInForeachCallsPreNNBDTest extends LintRuleTest {
- @override
- String get lintRule => 'avoid_function_literals_in_foreach_calls';
-
- @override
- void setUp() {
- super.setUp();
- noSoundNullSafety = false;
- }
-
- void tearDown() {
- noSoundNullSafety = true;
- }
-
- test_functionExpression_basic() async {
- await assertDiagnostics(r'''
-// @dart=2.9
-void f(List<String> people) {
- people.forEach((person) => print('$person'));
-}
-''', [lint(52, 7)]);
- }
-
- test_functionExpression_nullAware() async {
- await assertNoDiagnostics(r'''
-// @dart=2.9
-void f(List<String> people) {
- people?.forEach((person) => print('$person'));
-}
-''');
- }
-}
diff --git a/pkg/linter/test/rules/avoid_redundant_argument_values_test.dart b/pkg/linter/test/rules/avoid_redundant_argument_values_test.dart
index 32d385d..b6b5e0d 100644
--- a/pkg/linter/test/rules/avoid_redundant_argument_values_test.dart
+++ b/pkg/linter/test/rules/avoid_redundant_argument_values_test.dart
@@ -2,7 +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.
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../rule_test_support.dart';
@@ -37,16 +36,6 @@
@override
String get lintRule => 'avoid_redundant_argument_values';
- @override
- void setUp() {
- super.setUp();
- noSoundNullSafety = false;
- }
-
- void tearDown() {
- noSoundNullSafety = true;
- }
-
/// https://github.com/dart-lang/linter/issues/3617
test_enumDeclaration() async {
await assertDiagnostics(r'''
@@ -77,26 +66,6 @@
''');
}
- /// https://github.com/dart-lang/sdk/issues/49596
- test_legacyRequired() async {
- var a = newFile('$testPackageLibPath/a.dart', r'''
-class Foo {
- int? foo;
- Foo({required this.foo});
-}
-''');
- await resolveFile(a.path);
-
- await assertNoDiagnostics(r'''
-// @dart = 2.9
-import 'a.dart';
-
-void f() {
- Foo(foo: null);
-}
-''');
- }
-
test_redirectingFactoryConstructor() async {
await assertNoDiagnostics(r'''
class A {
diff --git a/pkg/linter/test/rules/null_closures_test.dart b/pkg/linter/test/rules/null_closures_test.dart
index ff71ff2..0e803b8 100644
--- a/pkg/linter/test/rules/null_closures_test.dart
+++ b/pkg/linter/test/rules/null_closures_test.dart
@@ -2,77 +2,17 @@
// 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/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../rule_test_support.dart';
main() {
defineReflectiveSuite(() {
- defineReflectiveTests(NullClosuresPreNNBDTest);
defineReflectiveTests(NullClosuresTest);
});
}
@reflectiveTest
-class NullClosuresPreNNBDTest extends LintRuleTest {
- @override
- String get lintRule => 'null_closures';
-
- @override
- void setUp() {
- super.setUp();
- noSoundNullSafety = false;
- }
-
- void tearDown() {
- noSoundNullSafety = true;
- }
-
- test_list_firstWhere() async {
- await assertNoDiagnostics(r'''
-// @dart=2.9
-
-f() => <int>[2, 4, 6].firstWhere((e) => e.isEven, orElse: () => null);
-''');
- }
-
- test_list_generate() async {
- await assertDiagnostics(r'''
-// @dart=2.9
-
-f() => List.generate(3, null);
-''', [
- lint(38, 4),
- ]);
- }
-
- test_list_where() async {
- await assertDiagnostics(r'''
-// @dart=2.9
-
-f() => <int>[2, 4, 6].where(null);
-''', [
- lint(42, 4),
- ]);
- }
-
- test_map_putIfAbsent() async {
- await assertDiagnostics(r'''
-// @dart=2.9
-
-f() {
- var map = <int, int>{};
- map.putIfAbsent(7, null);
- return map;
-}
-''', [
- lint(67, 4),
- ]);
- }
-}
-
-@reflectiveTest
class NullClosuresTest extends LintRuleTest {
@override
String get lintRule => 'null_closures';
diff --git a/pkg/linter/test/rules/only_throw_errors_test.dart b/pkg/linter/test/rules/only_throw_errors_test.dart
index d0d842f..4938bc3 100644
--- a/pkg/linter/test/rules/only_throw_errors_test.dart
+++ b/pkg/linter/test/rules/only_throw_errors_test.dart
@@ -2,7 +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.
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../rule_test_support.dart';
@@ -18,16 +17,6 @@
@override
String get lintRule => 'only_throw_errors';
- @override
- void setUp() {
- super.setUp();
- noSoundNullSafety = false;
- }
-
- void tearDown() {
- noSoundNullSafety = true;
- }
-
test_argumentError() async {
await assertNoDiagnostics(r'''
void f() {
@@ -101,17 +90,6 @@
''');
}
- test_nullInPreNullSafe() async {
- await assertDiagnostics(r'''
-// @dart=2.9
-void f() {
- throw null;
-}
-''', [
- lint(32, 4),
- ]);
- }
-
test_object() async {
await assertDiagnostics(r'''
void f() {
diff --git a/pkg/linter/test/rules/use_build_context_synchronously_test.dart b/pkg/linter/test/rules/use_build_context_synchronously_test.dart
index a5cce8d..38ba993 100644
--- a/pkg/linter/test/rules/use_build_context_synchronously_test.dart
+++ b/pkg/linter/test/rules/use_build_context_synchronously_test.dart
@@ -5,7 +5,6 @@
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/src/test_utilities/find_node.dart';
-import 'package:analyzer/src/utilities/legacy.dart';
import 'package:linter/src/rules/use_build_context_synchronously.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -16,7 +15,6 @@
defineReflectiveSuite(() {
defineReflectiveTests(AsyncStateTest);
defineReflectiveTests(UseBuildContextSynchronouslyTest);
- defineReflectiveTests(UseBuildContextSynchronouslyMixedModeTest);
});
}
@@ -1791,52 +1789,6 @@
}
@reflectiveTest
-class UseBuildContextSynchronouslyMixedModeTest extends LintRuleTest {
- @override
- bool get addFlutterPackageDep => true;
-
- @override
- String get lintRule => 'use_build_context_synchronously';
-
- /// Ensure we're not run in the test dir.
- @override
- String get testPackageRootPath => '$workspaceRootPath/lib';
-
- @override
- void setUp() {
- super.setUp();
- noSoundNullSafety = false;
- }
-
- void tearDown() {
- noSoundNullSafety = true;
- }
-
- /// https://github.com/dart-lang/linter/issues/2572
- test_mixedMode() async {
- newFile('$testPackageLibPath/migrated.dart', '''
-import 'package:flutter/widgets.dart';
-
-BuildContext? get contextOrNull => null;
-
-void f(BuildContext? contextOrNull) {}
-''');
-
- await assertNoDiagnostics(r'''
-// @dart=2.9
-
-import 'migrated.dart';
-
-void nullableContext() async {
- f(contextOrNull);
- await Future<void>.delayed(Duration());
- f(contextOrNull);
-}
-''');
- }
-}
-
-@reflectiveTest
class UseBuildContextSynchronouslyTest extends LintRuleTest {
@override
bool get addFlutterPackageDep => true;