Migration: fix types of DecoratedType.{positional,named}Parameters
These fields can be `null`, but if they aren't, then the
`DecoratedType`s they contain cannot be `null`.
Change-Id: I9f07d06017ff9814e531f3517b4f452766dc0ebf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255341
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
diff --git a/pkg/nnbd_migration/lib/src/decorated_type.dart b/pkg/nnbd_migration/lib/src/decorated_type.dart
index 3d3cd2d..8700003 100644
--- a/pkg/nnbd_migration/lib/src/decorated_type.dart
+++ b/pkg/nnbd_migration/lib/src/decorated_type.dart
@@ -29,11 +29,11 @@
/// If `this` is a function type, the [DecoratedType] of each of its
/// positional parameters (including both required and optional positional
/// parameters).
- final List<DecoratedType?>? positionalParameters;
+ final List<DecoratedType>? positionalParameters;
/// If `this` is a function type, the [DecoratedType] of each of its named
/// parameters.
- final Map<String, DecoratedType?>? namedParameters;
+ final Map<String, DecoratedType>? namedParameters;
/// If `this` is a parameterized type, the [DecoratedType] of each of its
/// type parameters.
@@ -67,7 +67,7 @@
assert(namedParameters![parameter.name]!.type == parameter.type);
namedParameterCount++;
} else {
- assert(positionalParameters![positionalParameterCount]!.type ==
+ assert(positionalParameters![positionalParameterCount].type ==
parameter.type);
positionalParameterCount++;
}
@@ -296,11 +296,10 @@
roles[rolePrefix] = node;
returnType?.recordRoles(roles, rolePrefix: '$rolePrefix/@r');
for (int i = 0; i < positionalParameters!.length; i++) {
- positionalParameters![i]!
- .recordRoles(roles, rolePrefix: '$rolePrefix/$i');
+ positionalParameters![i].recordRoles(roles, rolePrefix: '$rolePrefix/$i');
}
for (var entry in namedParameters!.entries) {
- entry.value!.recordRoles(roles, rolePrefix: '$rolePrefix/${entry.key}');
+ entry.value.recordRoles(roles, rolePrefix: '$rolePrefix/${entry.key}');
}
for (int i = 0; i < typeArguments.length; i++) {
typeArguments[i]!.recordRoles(roles, rolePrefix: '$rolePrefix/$i');
@@ -484,7 +483,7 @@
var undecoratedParameterType = i < numRequiredParameters
? undecoratedResult.normalParameterTypes[i]
: undecoratedResult.optionalParameterTypes[i - numRequiredParameters];
- newPositionalParameters.add(positionalParameters![i]!
+ newPositionalParameters.add(positionalParameters![i]
._substitute(substitution, undecoratedParameterType));
}
var newNamedParameters = <String, DecoratedType>{};
@@ -493,7 +492,7 @@
var undecoratedParameterType =
undecoratedResult.namedParameterTypes[name];
newNamedParameters[name] =
- (entry.value!._substitute(substitution, undecoratedParameterType));
+ (entry.value._substitute(substitution, undecoratedParameterType));
}
return DecoratedType(undecoratedResult, node,
returnType:
diff --git a/pkg/nnbd_migration/lib/src/edge_builder.dart b/pkg/nnbd_migration/lib/src/edge_builder.dart
index 838220b..38960f6 100644
--- a/pkg/nnbd_migration/lib/src/edge_builder.dart
+++ b/pkg/nnbd_migration/lib/src/edge_builder.dart
@@ -2504,7 +2504,7 @@
assert(compoundOperatorType.positionalParameters!.isNotEmpty);
_checkAssignment(edgeOrigin, FixReasonTarget.root,
source: sourceType,
- destination: compoundOperatorType.positionalParameters![0]!,
+ destination: compoundOperatorType.positionalParameters![0],
hard: _shouldUseHardEdge(expression!),
sourceIsFunctionLiteral: expression is FunctionExpression);
sourceType = _fixNumericTypes(compoundOperatorType.returnType!,
@@ -2757,7 +2757,7 @@
} else {
assert(method.isSetter);
DecoratedType currentParameterType =
- _currentFunctionType!.positionalParameters!.single!;
+ _currentFunctionType!.positionalParameters!.single;
DecoratedType overriddenParameterType = overriddenFieldType;
_checkAssignment(
ParameterInheritanceOrigin(source, node), FixReasonTarget.root,
@@ -2984,7 +2984,7 @@
_checkAssignment(
GetterSetterCorrespondenceOrigin(source, node), FixReasonTarget.root,
source: getType!.substitute(getterSubstitution),
- destination: setType!.substitute(setterSubstitution),
+ destination: setType.substitute(setterSubstitution),
hard: true);
}
@@ -3099,7 +3099,7 @@
// Any parameters not supplied must be optional.
for (var entry in calleeType.namedParameters!.entries) {
if (suppliedNamedParameters.contains(entry.key)) continue;
- entry.value!.node!.recordNamedParameterNotSupplied(
+ entry.value.node!.recordNamedParameterNotSupplied(
_guards, _graph, NamedParameterNotSuppliedOrigin(source, node));
}
return calleeType.returnType;
@@ -3294,13 +3294,13 @@
i < y!.positionalParameters!.length;
i++) {
_linkDecoratedTypes(
- x.positionalParameters![i]!, y.positionalParameters![i], origin,
+ x.positionalParameters![i], y.positionalParameters![i], origin,
isUnion: isUnion);
}
for (var entry in x.namedParameters!.entries) {
var superParameterType = y!.namedParameters![entry.key];
if (superParameterType != null) {
- _linkDecoratedTypes(entry.value!, y.namedParameters![entry.key], origin,
+ _linkDecoratedTypes(entry.value, y.namedParameters![entry.key], origin,
isUnion: isUnion);
}
}
@@ -3808,15 +3808,15 @@
i++) {
// Note: source and destination are swapped due to contravariance.
_checkAssignment(origin, edgeTarget.positionalParameter(i),
- source: destination.positionalParameters![i]!,
- destination: source.positionalParameters![i]!,
+ source: destination.positionalParameters![i],
+ destination: source.positionalParameters![i],
hard: false,
checkable: false);
}
for (var entry in destination.namedParameters!.entries) {
// Note: source and destination are swapped due to contravariance.
_checkAssignment(origin, edgeTarget.namedParameter(entry.key),
- source: entry.value!,
+ source: entry.value,
destination: source.namedParameters![entry.key]!,
hard: false,
checkable: false);
diff --git a/pkg/nnbd_migration/lib/src/node_builder.dart b/pkg/nnbd_migration/lib/src/node_builder.dart
index f33b20f..bff3f1c 100644
--- a/pkg/nnbd_migration/lib/src/node_builder.dart
+++ b/pkg/nnbd_migration/lib/src/node_builder.dart
@@ -45,12 +45,12 @@
/// If the parameters of a function or method are being visited, the
/// [DecoratedType]s of the function's named parameters that have been seen so
/// far. Otherwise `null`.
- Map<String, DecoratedType?>? _namedParameters;
+ Map<String, DecoratedType>? _namedParameters;
/// If the parameters of a function or method are being visited, the
/// [DecoratedType]s of the function's positional parameters that have been
/// seen so far. Otherwise `null`.
- List<DecoratedType?>? _positionalParameters;
+ List<DecoratedType>? _positionalParameters;
/// If the child types of a node are being visited, the
/// [NullabilityNodeTarget] that should be used in [visitTypeAnnotation].
@@ -456,7 +456,7 @@
soft: true);
if (_getAngularAnnotation(node.metadata) == _AngularAnnotation.child) {
_graph.makeNullable(
- type!.node!, AngularAnnotationOrigin(source, node));
+ type.node!, AngularAnnotationOrigin(source, node));
}
}
}
@@ -530,8 +530,8 @@
}
var typeArguments = const <DecoratedType>[];
DecoratedType? decoratedReturnType;
- List<DecoratedType?> positionalParameters = const <DecoratedType>[];
- Map<String, DecoratedType?> namedParameters =
+ List<DecoratedType> positionalParameters = const <DecoratedType>[];
+ Map<String, DecoratedType> namedParameters =
const <String, DecoratedType>{};
if (type is InterfaceType && type.element2.typeParameters.isNotEmpty) {
if (node is NamedType) {
@@ -567,8 +567,8 @@
decoratedReturnType = returnType.accept(this);
});
}
- positionalParameters = <DecoratedType?>[];
- namedParameters = <String, DecoratedType?>{};
+ positionalParameters = <DecoratedType>[];
+ namedParameters = <String, DecoratedType>{};
var previousPositionalParameters = _positionalParameters;
var previousNamedParameters = _namedParameters;
try {
@@ -823,8 +823,8 @@
_unimplemented(
typeParameters, 'Function-typed parameter with type parameters');
}
- var positionalParameters = <DecoratedType?>[];
- var namedParameters = <String, DecoratedType?>{};
+ var positionalParameters = <DecoratedType>[];
+ var namedParameters = <String, DecoratedType>{};
var previousPositionalParameters = _positionalParameters;
var previousNamedParameters = _namedParameters;
try {
@@ -853,9 +853,9 @@
}
}
if (declaredElement.isNamed) {
- _namedParameters![declaredElement.name] = decoratedType;
+ _namedParameters![declaredElement.name] = decoratedType!;
} else {
- _positionalParameters!.add(decoratedType);
+ _positionalParameters!.add(decoratedType!);
}
return decoratedType;
}
diff --git a/pkg/nnbd_migration/test/edge_builder_test.dart b/pkg/nnbd_migration/test/edge_builder_test.dart
index 83edb69..b7b1121 100644
--- a/pkg/nnbd_migration/test/edge_builder_test.dart
+++ b/pkg/nnbd_migration/test/edge_builder_test.dart
@@ -169,7 +169,7 @@
assign(t1, t2, hard: true);
// Note: t1 and t2 are swapped due to contravariance.
assertEdge(
- t2.positionalParameters![0]!.node, t1.positionalParameters![0]!.node,
+ t2.positionalParameters![0].node, t1.positionalParameters![0].node,
hard: false, checkable: false);
}
@@ -186,7 +186,7 @@
assign(t1, t2, hard: true);
// Note: t1 and t2 are swapped due to contravariance.
assertEdge(
- t2.positionalParameters![0]!.node, t1.positionalParameters![0]!.node,
+ t2.positionalParameters![0].node, t1.positionalParameters![0].node,
hard: false, checkable: false);
}
@@ -196,7 +196,7 @@
assign(t1, t2);
// Note: t1 and t2 are swapped due to contravariance.
assertEdge(
- t2.positionalParameters![0]!.node, t1.positionalParameters![0]!.node,
+ t2.positionalParameters![0].node, t1.positionalParameters![0].node,
hard: false, checkable: false);
}
@@ -2034,7 +2034,7 @@
''');
var syntheticConstructor = findElement.unnamedConstructor('D');
var constructorType = variables.decoratedElementType(syntheticConstructor);
- var constructorParameterType = constructorType.positionalParameters![0]!;
+ var constructorParameterType = constructorType.positionalParameters![0];
assertEdge(decoratedTypeAnnotation('MyList<int>/*2*/').node,
constructorParameterType.node,
hard: true);
@@ -2058,7 +2058,7 @@
''');
var syntheticConstructor = findElement.unnamedConstructor('D');
var constructorType = variables.decoratedElementType(syntheticConstructor);
- var constructorParameterType = constructorType.positionalParameters![0]!;
+ var constructorParameterType = constructorType.positionalParameters![0];
assertUnion(
constructorParameterType.node, decoratedTypeAnnotation('T t').node);
}
@@ -2095,7 +2095,7 @@
''');
var syntheticConstructor = findElement.unnamedConstructor('D');
var constructorType = variables.decoratedElementType(syntheticConstructor);
- var constructorParameterType = constructorType.positionalParameters![0]!;
+ var constructorParameterType = constructorType.positionalParameters![0];
assertEdge(
decoratedTypeAnnotation('int/*2*/').node, constructorParameterType.node,
hard: true);
@@ -2115,7 +2115,7 @@
''');
var syntheticConstructor = findElement.unnamedConstructor('D');
var constructorType = variables.decoratedElementType(syntheticConstructor);
- var constructorParameterType = constructorType.positionalParameters![0]!;
+ var constructorParameterType = constructorType.positionalParameters![0];
assertEdge(
decoratedTypeAnnotation('int/*2*/').node, constructorParameterType.node,
hard: true);
@@ -2185,9 +2185,9 @@
var resultType = decoratedExpressionType('(b ?')!;
assertLUB(resultType.node!, xType.node, yType.node);
assertGLB(
- resultType.positionalParameters![0]!.node,
- xType.positionalParameters![0]!.node,
- yType.positionalParameters![0]!.node);
+ resultType.positionalParameters![0].node,
+ xType.positionalParameters![0].node,
+ yType.positionalParameters![0].node);
}
Future<void>
@@ -2204,13 +2204,13 @@
var resultType = decoratedExpressionType('(b ?')!;
assertLUB(resultType.node!, xType.node, yType.node);
assertGLB(
- resultType.positionalParameters![0]!.node,
- xType.positionalParameters![0]!.node,
- yType.positionalParameters![0]!.node);
+ resultType.positionalParameters![0].node,
+ xType.positionalParameters![0].node,
+ yType.positionalParameters![0].node);
assertGLB(
- resultType.positionalParameters![1]!.node,
- xType.positionalParameters![1]!.node,
- yType.positionalParameters![1]!.node);
+ resultType.positionalParameters![1].node,
+ xType.positionalParameters![1].node,
+ yType.positionalParameters![1].node);
}
Future<void>
@@ -2227,9 +2227,9 @@
var resultType = decoratedExpressionType('(b ?')!;
assertLUB(resultType.node!, xType.node, yType.node);
assertGLB(
- resultType.positionalParameters![0]!.node,
- xType.positionalParameters![0]!.node,
- yType.positionalParameters![0]!.node);
+ resultType.positionalParameters![0].node,
+ xType.positionalParameters![0].node,
+ yType.positionalParameters![0].node);
}
Future<void> test_conditionalExpression_functionTyped_returnType() async {
@@ -2458,9 +2458,9 @@
var resultType = decoratedExpressionType('(b ?')!;
assertLUB(resultType.node!, xType.node, yType.node);
assertGLB(
- resultType.positionalParameters![0]!.node,
- xType.positionalParameters![0]!.node,
- yType.positionalParameters![0]!.node);
+ resultType.positionalParameters![0].node,
+ xType.positionalParameters![0].node,
+ yType.positionalParameters![0].node);
}
Future<void> test_conditionalExpression_parameterType() async {
@@ -2677,7 +2677,7 @@
var namedConstructor = findElement.constructor('named', of: 'C');
var constructorType = variables.decoratedElementType(namedConstructor);
- var constructorParameterType = constructorType.positionalParameters![0]!;
+ var constructorParameterType = constructorType.positionalParameters![0];
assertEdge(
decoratedTypeAnnotation('int j').node, constructorParameterType.node,
hard: true);
@@ -3184,13 +3184,13 @@
''');
var ctorParamType = variables
.decoratedElementType(findElement.unnamedConstructor('C'))
- .positionalParameters![0]!;
+ .positionalParameters![0];
var fieldType = variables.decoratedElementType(findElement.field('f'));
assertEdge(ctorParamType.node, fieldType.node, hard: true);
assertEdge(ctorParamType.returnType!.node, fieldType.returnType!.node,
hard: false, checkable: false);
- assertEdge(fieldType.positionalParameters![0]!.node,
- ctorParamType.positionalParameters![0]!.node,
+ assertEdge(fieldType.positionalParameters![0].node,
+ ctorParamType.positionalParameters![0].node,
hard: false, checkable: false);
assertEdge(fieldType.namedParameters!['j']!.node,
ctorParamType.namedParameters!['j']!.node,
@@ -3217,7 +3217,7 @@
}
''');
var decoratedConstructorParamType =
- decoratedConstructorDeclaration('named').positionalParameters![0]!;
+ decoratedConstructorDeclaration('named').positionalParameters![0];
assertEdge(decoratedConstructorParamType.node,
decoratedTypeAnnotation('int i').node,
hard: true);
@@ -4700,8 +4700,8 @@
void f/*C*/(x) {}
}
''');
- var bReturnType = decoratedMethodType('f/*B*/').positionalParameters![0]!;
- var cReturnType = decoratedMethodType('f/*C*/').positionalParameters![0]!;
+ var bReturnType = decoratedMethodType('f/*B*/').positionalParameters![0];
+ var cReturnType = decoratedMethodType('f/*C*/').positionalParameters![0];
assertEdge(bReturnType.node, cReturnType.node, hard: true);
}
@@ -5093,7 +5093,7 @@
findNode.methodInvocation('x.add').methodName.staticElement!;
var nullable_t = variables
.decoratedElementType(addMethod.declaration!)
- .positionalParameters![0]!
+ .positionalParameters![0]
.node;
assertEdge(nullable_t, never, hard: true, checkable: false);
var check_i = checkExpression('i/*check*/')!;
@@ -6616,8 +6616,8 @@
variables.decoratedElementType(findElement.function('g')).returnType!;
assertEdge(fType.returnType!.node, gReturnType.returnType!.node,
hard: false, checkable: false);
- assertEdge(gReturnType.positionalParameters![0]!.node,
- fType.positionalParameters![0]!.node,
+ assertEdge(gReturnType.positionalParameters![0].node,
+ fType.positionalParameters![0].node,
hard: false, checkable: false);
}
@@ -7709,8 +7709,8 @@
variables.decoratedElementType(findElement.function('g')).returnType!;
assertEdge(fType.returnType!.node, gReturnType.returnType!.node,
hard: false, checkable: false);
- assertEdge(gReturnType.positionalParameters![0]!.node,
- fType.positionalParameters![0]!.node,
+ assertEdge(gReturnType.positionalParameters![0].node,
+ fType.positionalParameters![0].node,
hard: false, checkable: false);
}
@@ -7726,8 +7726,8 @@
variables.decoratedElementType(findElement.method('g')).returnType!;
assertEdge(fType.returnType!.node, gReturnType.returnType!.node,
hard: false, checkable: false);
- assertEdge(gReturnType.positionalParameters![0]!.node,
- fType.positionalParameters![0]!.node,
+ assertEdge(gReturnType.positionalParameters![0].node,
+ fType.positionalParameters![0].node,
hard: false, checkable: false);
}
diff --git a/pkg/nnbd_migration/test/node_builder_test.dart b/pkg/nnbd_migration/test/node_builder_test.dart
index 619193a..ea57053 100644
--- a/pkg/nnbd_migration/test/node_builder_test.dart
+++ b/pkg/nnbd_migration/test/node_builder_test.dart
@@ -138,8 +138,8 @@
_assertType(aType.returnType!.type!, 'D');
expect(aType.returnType!.node, same(never));
expect(aType.positionalParameters, hasLength(1));
- _assertType(aType.positionalParameters![0]!.type!, 'int');
- expect(aType.positionalParameters![0]!.node,
+ _assertType(aType.positionalParameters![0].type!, 'int');
+ expect(aType.positionalParameters![0].node,
TypeMatcher<NullabilityNodeMutable>());
expect(aType.namedParameters, isEmpty);
var b = findElement.constructor('b', of: 'D');
@@ -150,8 +150,8 @@
_assertType(bType.returnType!.type!, 'D');
expect(bType.returnType!.node, same(never));
expect(bType.positionalParameters, hasLength(1));
- _assertType(bType.positionalParameters![0]!.type!, 'int');
- expect(bType.positionalParameters![0]!.node,
+ _assertType(bType.positionalParameters![0].type!, 'int');
+ expect(bType.positionalParameters![0].node,
TypeMatcher<NullabilityNodeMutable>());
expect(bType.namedParameters, isEmpty);
var c = findElement.constructor('c', of: 'D');
@@ -175,12 +175,12 @@
_assertType(dType.returnType!.type!, 'D');
expect(dType.returnType!.node, same(never));
expect(dType.positionalParameters, hasLength(1));
- _assertType(dType.positionalParameters![0]!.type!, 'List<int>');
- expect(dType.positionalParameters![0]!.node,
+ _assertType(dType.positionalParameters![0].type!, 'List<int>');
+ expect(dType.positionalParameters![0].node,
TypeMatcher<NullabilityNodeMutable>());
- expect(dType.positionalParameters![0]!.typeArguments, hasLength(1));
- _assertType(dType.positionalParameters![0]!.typeArguments[0]!.type!, 'int');
- expect(dType.positionalParameters![0]!.typeArguments[0]!.node,
+ expect(dType.positionalParameters![0].typeArguments, hasLength(1));
+ _assertType(dType.positionalParameters![0].typeArguments[0]!.type!, 'int');
+ expect(dType.positionalParameters![0].typeArguments[0]!.node,
TypeMatcher<NullabilityNodeMutable>());
expect(dType.namedParameters, isEmpty);
}
@@ -207,8 +207,8 @@
expect(typeArguments[0]!.node, same(never));
var dParams = dConstructorType.positionalParameters!;
expect(dParams, hasLength(1));
- _assertType(dParams[0]!.type!, 'U');
- expect(dParams[0]!.node, TypeMatcher<NullabilityNodeMutable>());
+ _assertType(dParams[0].type!, 'U');
+ expect(dParams[0].node, TypeMatcher<NullabilityNodeMutable>());
}
Future<void> test_class_with_default_constructor() async {
@@ -796,8 +796,8 @@
var ctorParamType = variables.decoratedElementType(ctorParam);
expect(ctorType.positionalParameters![0], same(ctorParamType));
expect(ctorParamType.node, TypeMatcher<NullabilityNodeMutable>());
- _assertType(ctorParamType.positionalParameters![0]!.type!, 'dynamic');
- expect(ctorParamType.positionalParameters![0]!.node!.isImmutable, false);
+ _assertType(ctorParamType.positionalParameters![0].type!, 'dynamic');
+ expect(ctorParamType.positionalParameters![0].node!.isImmutable, false);
}
Future<void> test_fieldFormalParameter_function_return_typed() async {
@@ -897,7 +897,7 @@
}
''');
var decoratedConstructorParamType =
- decoratedConstructorDeclaration('named').positionalParameters![0]!;
+ decoratedConstructorDeclaration('named').positionalParameters![0];
expect(decoratedTypeAnnotation('int this'),
same(decoratedConstructorParamType));
_assertType(decoratedConstructorParamType.type!, 'int');
@@ -915,7 +915,7 @@
}
''');
var decoratedConstructorParamType =
- decoratedConstructorDeclaration('named').positionalParameters![0]!;
+ decoratedConstructorDeclaration('named').positionalParameters![0];
_assertType(decoratedConstructorParamType.type!, 'int');
expect(decoratedConstructorParamType.node,
TypeMatcher<NullabilityNodeMutable>());
@@ -1071,10 +1071,10 @@
expect(
decoratedType.returnType!.node, TypeMatcher<NullabilityNodeMutable>());
expect(
- (decoratedType.positionalParameters![0]!.type as TypeParameterType)
+ (decoratedType.positionalParameters![0].type as TypeParameterType)
.element2,
same(u));
- expect(decoratedType.positionalParameters![0]!.node,
+ expect(decoratedType.positionalParameters![0].node,
TypeMatcher<NullabilityNodeMutable>());
}
@@ -1177,8 +1177,8 @@
var gType = variables.decoratedElementType(g);
expect(fType.positionalParameters![0], same(gType));
expect(gType.node, TypeMatcher<NullabilityNodeMutable>());
- _assertType(gType.positionalParameters![0]!.type!, 'dynamic');
- expect(gType.positionalParameters![0]!.node!.isImmutable, false);
+ _assertType(gType.positionalParameters![0].type!, 'dynamic');
+ expect(gType.positionalParameters![0].node!.isImmutable, false);
}
Future<void> test_functionTypedFormalParameter_return_typed() async {
@@ -1223,7 +1223,7 @@
expect((decoratedType.returnType!.type as TypeParameterType).element2,
same(t));
expect(
- (decoratedType.positionalParameters![0]!.type as TypeParameterType)
+ (decoratedType.positionalParameters![0].type as TypeParameterType)
.element2,
same(u));
}
@@ -1305,10 +1305,10 @@
expect(
decoratedType.returnType!.node, TypeMatcher<NullabilityNodeMutable>());
expect(
- (decoratedType.positionalParameters![0]!.type as TypeParameterType)
+ (decoratedType.positionalParameters![0].type as TypeParameterType)
.element2,
same(u));
- expect(decoratedType.positionalParameters![0]!.node,
+ expect(decoratedType.positionalParameters![0].node,
TypeMatcher<NullabilityNodeMutable>());
}
@@ -1332,10 +1332,10 @@
expect(
decoratedType.returnType!.node, TypeMatcher<NullabilityNodeMutable>());
expect(
- (decoratedType.positionalParameters![0]!.type as TypeParameterType)
+ (decoratedType.positionalParameters![0].type as TypeParameterType)
.element2,
same(u));
- expect(decoratedType.positionalParameters![0]!.node,
+ expect(decoratedType.positionalParameters![0].node,
TypeMatcher<NullabilityNodeMutable>());
}
@@ -1645,7 +1645,7 @@
void f(x) {}
}
''');
- var decoratedType = decoratedMethodType('f').positionalParameters![0]!;
+ var decoratedType = decoratedMethodType('f').positionalParameters![0];
expect(decoratedType.node!.isImmutable, false);
}
@@ -1668,7 +1668,7 @@
void f/*C*/(x) {}
}
''');
- var decoratedType = decoratedMethodType('f/*C*/').positionalParameters![0]!;
+ var decoratedType = decoratedMethodType('f/*C*/').positionalParameters![0];
expect(decoratedType.node, TypeMatcher<NullabilityNodeMutable>());
}
@@ -1681,7 +1681,7 @@
void f/*C*/(x) {}
}
''');
- var decoratedType = decoratedMethodType('f/*C*/').positionalParameters![0]!;
+ var decoratedType = decoratedMethodType('f/*C*/').positionalParameters![0];
expect(decoratedType.node!.isImmutable, false);
}
@@ -1709,8 +1709,8 @@
}
''');
var decoratedBaseType =
- decoratedMethodType('f/*B*/').positionalParameters![0]!;
- var decoratedType = decoratedMethodType('f/*C*/').positionalParameters![0]!;
+ decoratedMethodType('f/*B*/').positionalParameters![0];
+ var decoratedType = decoratedMethodType('f/*C*/').positionalParameters![0];
var decoratedTypeFormalBound = decoratedTypeParameterBounds
.get((decoratedType.type as FunctionType).typeFormals[0])!;
_assertType(decoratedTypeFormalBound.type!, 'Object');
@@ -1731,8 +1731,8 @@
}
''');
var decoratedBaseType =
- decoratedMethodType('f/*B*/').positionalParameters![0]!;
- var decoratedType = decoratedMethodType('f/*C*/').positionalParameters![0]!;
+ decoratedMethodType('f/*B*/').positionalParameters![0];
+ var decoratedType = decoratedMethodType('f/*C*/').positionalParameters![0];
var decoratedTypeFormalBound = decoratedTypeParameterBounds
.get((decoratedType.type as FunctionType).typeFormals[0])!;
_assertType(decoratedTypeFormalBound.type!, 'num');
@@ -2140,12 +2140,12 @@
'return type of F (test.dart:1:9)');
expect(decoratedType.returnType!.node!.displayName,
'return type of f (test.dart:2:1)');
- _assertType(decoratedType.positionalParameters![0]!.type!, 'String');
- expect(decoratedType.positionalParameters![0]!.node,
+ _assertType(decoratedType.positionalParameters![0].type!, 'String');
+ expect(decoratedType.positionalParameters![0].node,
TypeMatcher<NullabilityNodeMutable>());
- expect(decoratedType.positionalParameters![0]!.node,
- isNot(same(typedefDecoratedType.positionalParameters![0]!.node)));
- expect(decoratedType.positionalParameters![0]!.node!.displayName,
+ expect(decoratedType.positionalParameters![0].node,
+ isNot(same(typedefDecoratedType.positionalParameters![0].node)));
+ expect(decoratedType.positionalParameters![0].node!.displayName,
'parameter 0 of f (test.dart:2:1)');
}
@@ -2173,9 +2173,9 @@
// This is necessary because there is no guarantee of whether the typedef or
// its usage will be visited first.
var decoratedType = decoratedTypeAnnotation('F f');
- expect(decoratedType.positionalParameters![0]!.node!.displayName,
+ expect(decoratedType.positionalParameters![0].node!.displayName,
'parameter 0 of f (test.dart:2:1)');
- expect(decoratedType.positionalParameters![1]!.node!.displayName,
+ expect(decoratedType.positionalParameters![1].node!.displayName,
'parameter 1 of f (test.dart:2:1)');
}