Analyzer: Migrate 5 more test classes to use null safety
Bug: https://github.com/dart-lang/sdk/issues/44666
Change-Id: I80135a4ae03820438547223938b1ee4dababdd7f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/183820
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
diff --git a/pkg/analyzer/test/src/dart/element/inheritance_manager3_test.dart b/pkg/analyzer/test/src/dart/element/inheritance_manager3_test.dart
index bb83b55..d584afe 100644
--- a/pkg/analyzer/test/src/dart/element/inheritance_manager3_test.dart
+++ b/pkg/analyzer/test/src/dart/element/inheritance_manager3_test.dart
@@ -1281,10 +1281,7 @@
}
}
-class _InheritanceManager3Base extends PubPackageResolutionTest
- with WithoutNullSafetyMixin {
- // TODO(https://github.com/dart-lang/sdk/issues/44666): Use null safety in
- // test cases.
+class _InheritanceManager3Base extends PubPackageResolutionTest {
late final InheritanceManager3 manager;
@override
diff --git a/pkg/analyzer/test/src/dart/resolution/ast_rewrite_test.dart b/pkg/analyzer/test/src/dart/resolution/ast_rewrite_test.dart
index f9664da..ab1f6c6 100644
--- a/pkg/analyzer/test/src/dart/resolution/ast_rewrite_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/ast_rewrite_test.dart
@@ -392,12 +392,7 @@
@reflectiveTest
class AstRewriteMethodInvocationWithNonFunctionTypeAliasesTest
extends PubPackageResolutionTest
- with
- WithoutNullSafetyMixin,
- WithNonFunctionTypeAliasesMixin,
- AstRewriteMethodInvocationTestCases {
- // TODO(https://github.com/dart-lang/sdk/issues/44666): Use null safety in
- // test cases.
+ with WithNonFunctionTypeAliasesMixin, AstRewriteMethodInvocationTestCases {
test_targetNull_typeAlias_interfaceType() async {
await assertNoErrorsInCode(r'''
class A<T, U> {
diff --git a/pkg/analyzer/test/src/dart/resolution/class_alias_test.dart b/pkg/analyzer/test/src/dart/resolution/class_alias_test.dart
index 9429125..59e92f4 100644
--- a/pkg/analyzer/test/src/dart/resolution/class_alias_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/class_alias_test.dart
@@ -16,9 +16,7 @@
@reflectiveTest
class ClassAliasDriverResolutionTest extends PubPackageResolutionTest
- with WithoutNullSafetyMixin, ElementsTypesMixin {
- // TODO(https://github.com/dart-lang/sdk/issues/44666): Use null safety in
- // test cases.
+ with ElementsTypesMixin {
test_defaultConstructor() async {
await assertNoErrorsInCode(r'''
class A {}
@@ -69,8 +67,8 @@
assertElementTypes(
x.interfaces,
[
- interfaceTypeStar(a),
- interfaceTypeStar(b),
+ interfaceTypeNone(a),
+ interfaceTypeNone(b),
],
);
}
@@ -87,8 +85,8 @@
assertElementTypes(
x.mixins,
[
- interfaceTypeStar(a),
- interfaceTypeStar(b),
+ interfaceTypeNone(a),
+ interfaceTypeNone(b),
],
);
}
@@ -179,8 +177,8 @@
await assertNoErrorsInCode(r'''
class A {
A.c1(int a);
- A.c2(int a, [int b, int c]);
- A.c3(int a, {int b, int c});
+ A.c2(int a, [int b = 0, int c = 0]);
+ A.c3(int a, {int b = 0, int c = 0});
}
class M {}
diff --git a/pkg/analyzer/test/src/dart/resolution/class_test.dart b/pkg/analyzer/test/src/dart/resolution/class_test.dart
index f2bff29..da64df0 100644
--- a/pkg/analyzer/test/src/dart/resolution/class_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/class_test.dart
@@ -18,9 +18,7 @@
@reflectiveTest
class ClassDriverResolutionTest extends PubPackageResolutionTest
- with WithoutNullSafetyMixin, ElementsTypesMixin {
- // TODO(https://github.com/dart-lang/sdk/issues/44666): Use null safety in
- // test cases.
+ with ElementsTypesMixin {
test_element_allSupertypes() async {
await assertNoErrorsInCode(r'''
class A {}
@@ -42,11 +40,11 @@
var d = findElement.class_('D');
var e = findElement.class_('E');
- var typeA = interfaceTypeStar(a);
- var typeB = interfaceTypeStar(b);
- var typeC = interfaceTypeStar(c);
- var typeD = interfaceTypeStar(d);
- var typeE = interfaceTypeStar(e);
+ var typeA = interfaceTypeNone(a);
+ var typeB = interfaceTypeNone(b);
+ var typeC = interfaceTypeNone(c);
+ var typeD = interfaceTypeNone(d);
+ var typeE = interfaceTypeNone(e);
assertElementTypes(
findElement.class_('X1').allSupertypes,
@@ -87,16 +85,16 @@
assertElementTypes(
findElement.class_('X1').allSupertypes,
[
- interfaceTypeStar(a, typeArguments: [stringType]),
+ interfaceTypeNone(a, typeArguments: [stringType]),
objectType
],
);
assertElementTypes(
findElement.class_('X2').allSupertypes,
[
- interfaceTypeStar(b, typeArguments: [
+ interfaceTypeNone(b, typeArguments: [
stringType,
- interfaceTypeStar(listElement, typeArguments: [intType])
+ interfaceTypeNone(listElement, typeArguments: [intType])
]),
objectType
],
@@ -104,8 +102,8 @@
assertElementTypes(
findElement.class_('X3').allSupertypes,
[
- interfaceTypeStar(c, typeArguments: [doubleType]),
- interfaceTypeStar(b, typeArguments: [intType, doubleType]),
+ interfaceTypeNone(c, typeArguments: [doubleType]),
+ interfaceTypeNone(b, typeArguments: [intType, doubleType]),
objectType
],
);
@@ -129,7 +127,7 @@
var c = findElement.class_('C');
assertElementTypes(
findElement.class_('X').allSupertypes,
- [interfaceTypeStar(a), interfaceTypeStar(b), interfaceTypeStar(c)],
+ [interfaceTypeNone(a), interfaceTypeNone(b), interfaceTypeNone(c)],
);
}
@@ -155,8 +153,8 @@
assertElementTypes(
c.interfaces,
[
- interfaceTypeStar(a),
- interfaceTypeStar(b),
+ interfaceTypeNone(a),
+ interfaceTypeNone(b),
],
);
}
@@ -175,8 +173,8 @@
assertElementTypes(
c.mixins,
[
- interfaceTypeStar(a),
- interfaceTypeStar(b),
+ interfaceTypeNone(a),
+ interfaceTypeNone(b),
],
);
}
diff --git a/pkg/analyzer/test/src/dart/resolution/mixin_test.dart b/pkg/analyzer/test/src/dart/resolution/mixin_test.dart
index 9e23683..7c8bd6a 100644
--- a/pkg/analyzer/test/src/dart/resolution/mixin_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/mixin_test.dart
@@ -19,9 +19,7 @@
@reflectiveTest
class MixinDriverResolutionTest extends PubPackageResolutionTest
- with WithoutNullSafetyMixin, ElementsTypesMixin {
- // TODO(https://github.com/dart-lang/sdk/issues/44666): Use null safety in
- // test cases.
+ with ElementsTypesMixin {
test_accessor_getter() async {
await assertNoErrorsInCode(r'''
mixin M {
@@ -96,7 +94,7 @@
var mElement = findElement.mixin('M');
var aElement = findElement.class_('A');
- assertElementTypes(aElement.mixins, [interfaceTypeStar(mElement)]);
+ assertElementTypes(aElement.mixins, [interfaceTypeNone(mElement)]);
var mRef = findNode.typeName('M {} // A');
assertTypeName(mRef, mElement, 'M');
@@ -111,7 +109,7 @@
var mElement = findElement.mixin('M');
var aElement = findElement.class_('A');
- assertElementTypes(aElement.mixins, [interfaceTypeStar(mElement)]);
+ assertElementTypes(aElement.mixins, [interfaceTypeNone(mElement)]);
var mRef = findNode.typeName('M;');
assertTypeName(mRef, mElement, 'M');
@@ -168,15 +166,15 @@
var c = findElement.class_('C');
assertElementTypes(
findElement.mixin('M1').allSupertypes,
- [interfaceTypeStar(a), interfaceTypeStar(b), objectType],
+ [interfaceTypeNone(a), interfaceTypeNone(b), objectType],
);
assertElementTypes(
findElement.mixin('M2').allSupertypes,
[
- interfaceTypeStar(a),
+ interfaceTypeNone(a),
objectType,
- interfaceTypeStar(b),
- interfaceTypeStar(c)
+ interfaceTypeNone(b),
+ interfaceTypeNone(c)
],
);
}
@@ -195,15 +193,15 @@
assertElementTypes(
findElement.mixin('M1').allSupertypes,
[
- interfaceTypeStar(a, typeArguments: [intType, doubleType]),
+ interfaceTypeNone(a, typeArguments: [intType, doubleType]),
objectType
],
);
assertElementTypes(
findElement.mixin('M2').allSupertypes,
[
- interfaceTypeStar(b, typeArguments: [stringType]),
- interfaceTypeStar(a, typeArguments: [intType, stringType]),
+ interfaceTypeNone(b, typeArguments: [stringType]),
+ interfaceTypeNone(a, typeArguments: [intType, stringType]),
objectType
],
);
@@ -325,7 +323,7 @@
var randomElement = mathImport.importedLibrary!.getType('Random')!;
var element = findElement.mixin('M');
- assertElementTypes(element.interfaces, [interfaceTypeStar(randomElement)]);
+ assertElementTypes(element.interfaces, [interfaceTypeNone(randomElement)]);
var typeRef = findNode.typeName('Random {}');
assertTypeName(typeRef, randomElement, 'Random',
@@ -413,15 +411,15 @@
test_error_mixinApplicationConcreteSuperInvokedMemberType_method() async {
await assertErrorsInCode(r'''
class I {
- void foo([int p]) {}
+ void foo([int? p]) {}
}
class A {
- void foo(int p) {}
+ void foo(int? p) {}
}
abstract class B extends A implements I {
- void foo([int p]);
+ void foo([int? p]);
}
mixin M on I {
@@ -435,7 +433,7 @@
error(
CompileTimeErrorCode
.MIXIN_APPLICATION_CONCRETE_SUPER_INVOKED_MEMBER_TYPE,
- 224,
+ 227,
1),
]);
}
@@ -447,7 +445,7 @@
}
mixin M<U> on A<U> {
- void remove(Object x) {
+ void remove(Object? x) {
super.remove(x as U);
}
}
@@ -858,7 +856,7 @@
var element = findElement.mixin('M');
assertElementTypes(element.superclassConstraints, [
- interfaceTypeStar(randomElement),
+ interfaceTypeNone(randomElement),
]);
var typeRef = findNode.typeName('Random {}');
@@ -937,7 +935,7 @@
var a = findElement.mixin('A');
var b = findElement.mixin('B');
assertElementTypes(b.superclassConstraints, [
- interfaceTypeStar(a),
+ interfaceTypeNone(a),
]);
}
@@ -972,7 +970,7 @@
test_field() async {
await assertNoErrorsInCode(r'''
mixin M<T> {
- T f;
+ late T f;
}
''');
@@ -992,7 +990,7 @@
expect(fields, hasLength(1));
var fElement = fields[0];
- assertElementName(fElement, 'f', offset: 17);
+ assertElementName(fElement, 'f', offset: 22);
assertEnclosingElement(fElement, element);
var fNode = findNode.variableDeclaration('f;');
@@ -1018,11 +1016,11 @@
assertElementTypes(element.interfaces, [
findElement.class_('A').instantiate(
typeArguments: const [],
- nullabilitySuffix: NullabilitySuffix.star,
+ nullabilitySuffix: NullabilitySuffix.none,
),
findElement.class_('B').instantiate(
typeArguments: const [],
- nullabilitySuffix: NullabilitySuffix.star,
+ nullabilitySuffix: NullabilitySuffix.none,
),
]);
@@ -1089,19 +1087,17 @@
test_methodCallTypeInference_mixinType() async {
await assertErrorsInCode('''
-main() {
+g(M<T> f<T>()) {
C<int> c = f();
}
class C<T> {}
mixin M<T> on C<T> {}
-
-M<T> f<T>() => null;
''', [
- error(HintCode.UNUSED_LOCAL_VARIABLE, 18, 1),
+ error(HintCode.UNUSED_LOCAL_VARIABLE, 26, 1),
]);
- var fInvocation = findNode.methodInvocation('f()');
+ var fInvocation = findNode.functionExpressionInvocation('f()');
assertInvokeType(fInvocation, 'M<int> Function()');
}
@@ -1117,11 +1113,11 @@
assertElementTypes(element.superclassConstraints, [
findElement.class_('A').instantiate(
typeArguments: const [],
- nullabilitySuffix: NullabilitySuffix.star,
+ nullabilitySuffix: NullabilitySuffix.none,
),
findElement.class_('B').instantiate(
typeArguments: const [],
- nullabilitySuffix: NullabilitySuffix.star,
+ nullabilitySuffix: NullabilitySuffix.none,
),
]);