Skip to content

Commit bd92c25

Browse files
chloestefantsovaCommit Queue
authored andcommitted
[model] Remove nullability messaging in subtyping error messages
The subtype checking mode that ignores the nullability and is enabling the nullability-related messaging is to be removed. This CL cleans up the test expectations for that change. Change-Id: I39e1fbf40192d1434b87e38cbe00eb68a965f0df Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/428782 Reviewed-by: Johnni Winther <[email protected]> Commit-Queue: Chloe Stefantsova <[email protected]>
1 parent 0d4b08c commit bd92c25

File tree

6 files changed

+17
-146
lines changed

6 files changed

+17
-146
lines changed

pkg/front_end/lib/src/codes/cfe_codes_generated.dart

Lines changed: 0 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -5014,94 +5014,6 @@ Message _withArgumentsSpreadElementTypeMismatch(
50145014
);
50155015
}
50165016

5017-
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
5018-
const Template<Message Function(DartType _type, DartType _type2)>
5019-
templateSpreadElementTypeMismatchNullability =
5020-
const Template<Message Function(DartType _type, DartType _type2)>(
5021-
"SpreadElementTypeMismatchNullability",
5022-
problemMessageTemplate:
5023-
r"""Can't assign spread elements of type '#type' to collection elements of type '#type2' because '#type' is nullable and '#type2' isn't.""",
5024-
withArguments: _withArgumentsSpreadElementTypeMismatchNullability,
5025-
);
5026-
5027-
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
5028-
const Code<Message Function(DartType _type, DartType _type2)>
5029-
codeSpreadElementTypeMismatchNullability =
5030-
const Code<Message Function(DartType _type, DartType _type2)>(
5031-
"SpreadElementTypeMismatchNullability",
5032-
analyzerCodes: <String>["LIST_ELEMENT_TYPE_NOT_ASSIGNABLE"],
5033-
);
5034-
5035-
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
5036-
Message _withArgumentsSpreadElementTypeMismatchNullability(
5037-
DartType _type, DartType _type2) {
5038-
TypeLabeler labeler = new TypeLabeler();
5039-
List<Object> typeParts = labeler.labelType(_type);
5040-
List<Object> type2Parts = labeler.labelType(_type2);
5041-
String type = typeParts.join();
5042-
String type2 = type2Parts.join();
5043-
return new Message(
5044-
codeSpreadElementTypeMismatchNullability,
5045-
problemMessage:
5046-
"""Can't assign spread elements of type '${type}' to collection elements of type '${type2}' because '${type}' is nullable and '${type2}' isn't.""" +
5047-
labeler.originMessages,
5048-
arguments: {
5049-
'type': _type,
5050-
'type2': _type2,
5051-
},
5052-
);
5053-
}
5054-
5055-
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
5056-
const Template<
5057-
Message Function(
5058-
DartType _type, DartType _type2, DartType _type3, DartType _type4)>
5059-
templateSpreadElementTypeMismatchPartNullability = const Template<
5060-
Message Function(
5061-
DartType _type, DartType _type2, DartType _type3, DartType _type4)>(
5062-
"SpreadElementTypeMismatchPartNullability",
5063-
problemMessageTemplate:
5064-
r"""Can't assign spread elements of type '#type' to collection elements of type '#type2' because '#type3' is nullable and '#type4' isn't.""",
5065-
withArguments: _withArgumentsSpreadElementTypeMismatchPartNullability,
5066-
);
5067-
5068-
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
5069-
const Code<
5070-
Message Function(
5071-
DartType _type, DartType _type2, DartType _type3, DartType _type4)>
5072-
codeSpreadElementTypeMismatchPartNullability = const Code<
5073-
Message Function(
5074-
DartType _type, DartType _type2, DartType _type3, DartType _type4)>(
5075-
"SpreadElementTypeMismatchPartNullability",
5076-
analyzerCodes: <String>["LIST_ELEMENT_TYPE_NOT_ASSIGNABLE"],
5077-
);
5078-
5079-
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
5080-
Message _withArgumentsSpreadElementTypeMismatchPartNullability(
5081-
DartType _type, DartType _type2, DartType _type3, DartType _type4) {
5082-
TypeLabeler labeler = new TypeLabeler();
5083-
List<Object> typeParts = labeler.labelType(_type);
5084-
List<Object> type2Parts = labeler.labelType(_type2);
5085-
List<Object> type3Parts = labeler.labelType(_type3);
5086-
List<Object> type4Parts = labeler.labelType(_type4);
5087-
String type = typeParts.join();
5088-
String type2 = type2Parts.join();
5089-
String type3 = type3Parts.join();
5090-
String type4 = type4Parts.join();
5091-
return new Message(
5092-
codeSpreadElementTypeMismatchPartNullability,
5093-
problemMessage:
5094-
"""Can't assign spread elements of type '${type}' to collection elements of type '${type2}' because '${type3}' is nullable and '${type4}' isn't.""" +
5095-
labeler.originMessages,
5096-
arguments: {
5097-
'type': _type,
5098-
'type2': _type2,
5099-
'type3': _type3,
5100-
'type4': _type4,
5101-
},
5102-
);
5103-
}
5104-
51055017
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
51065018
const Template<Message Function(DartType _type, DartType _type2)>
51075019
templateSpreadMapEntryElementKeyTypeMismatch =

pkg/front_end/lib/src/type_inference/inference_visitor.dart

Lines changed: 5 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2366,34 +2366,11 @@ class InferenceVisitorImpl extends InferenceVisitorBase
23662366
}
23672367
} else if (spreadTypeBound is InterfaceType) {
23682368
if (!isAssignable(inferredTypeArgument, spreadElementType)) {
2369-
IsSubtypeOf subtypeCheckResult =
2370-
typeSchemaEnvironment.performNullabilityAwareSubtypeCheck(
2371-
spreadElementType, inferredTypeArgument);
2372-
if (subtypeCheckResult.isSubtypeWhenIgnoringNullabilities()) {
2373-
if (spreadElementType == subtypeCheckResult.subtype &&
2374-
inferredTypeArgument == subtypeCheckResult.supertype) {
2375-
replacement = helper.buildProblem(
2376-
templateSpreadElementTypeMismatchNullability.withArguments(
2377-
spreadElementType, inferredTypeArgument),
2378-
element.expression.fileOffset,
2379-
1);
2380-
} else {
2381-
replacement = helper.buildProblem(
2382-
templateSpreadElementTypeMismatchPartNullability.withArguments(
2383-
spreadElementType,
2384-
inferredTypeArgument,
2385-
subtypeCheckResult.subtype!,
2386-
subtypeCheckResult.supertype!),
2387-
element.expression.fileOffset,
2388-
1);
2389-
}
2390-
} else {
2391-
replacement = helper.buildProblem(
2392-
templateSpreadElementTypeMismatch.withArguments(
2393-
spreadElementType, inferredTypeArgument),
2394-
element.expression.fileOffset,
2395-
1);
2396-
}
2369+
replacement = helper.buildProblem(
2370+
templateSpreadElementTypeMismatch.withArguments(
2371+
spreadElementType, inferredTypeArgument),
2372+
element.expression.fileOffset,
2373+
1);
23972374
}
23982375
if (spreadType.isPotentiallyNullable &&
23992376
spreadType is! DynamicType &&

pkg/front_end/messages.yaml

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5304,24 +5304,6 @@ SpreadElementTypeMismatch:
53045304
List<int> b = <int>[...a];
53055305
}
53065306
5307-
SpreadElementTypeMismatchNullability:
5308-
problemMessage: "Can't assign spread elements of type '#type' to collection elements of type '#type2' because '#type' is nullable and '#type2' isn't."
5309-
analyzerCode: LIST_ELEMENT_TYPE_NOT_ASSIGNABLE
5310-
script: >
5311-
main() {
5312-
List<int?> a = <int?>[0, null];
5313-
List<int> b = <int>[...a];
5314-
}
5315-
5316-
SpreadElementTypeMismatchPartNullability:
5317-
problemMessage: "Can't assign spread elements of type '#type' to collection elements of type '#type2' because '#type3' is nullable and '#type4' isn't."
5318-
analyzerCode: LIST_ELEMENT_TYPE_NOT_ASSIGNABLE
5319-
script: >
5320-
main() {
5321-
List<List<int?>> a = <List<int?>>[[0, null]];
5322-
List<List<int>> b = <List<int>>[...a];
5323-
}
5324-
53255307
SpreadMapEntryTypeMismatch:
53265308
problemMessage: "Unexpected type '#type' of a map spread entry. Expected 'dynamic' or a Map."
53275309
script:

pkg/front_end/testcases/nnbd/assignability_error_messages.dart.strong.expect

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ library;
1414
// A a = x; // Error.
1515
// ^
1616
//
17-
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:31:10: Error: Can't assign spread elements of type 'B?' to collection elements of type 'A' because 'B?' is nullable and 'A' isn't.
17+
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:31:10: Error: Can't assign spread elements of type 'B?' to collection elements of type 'A'.
1818
// - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
1919
// - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
2020
// <A>[...l]; // Error.
@@ -96,7 +96,7 @@ library;
9696
// List<A> y = x; // Error.
9797
// ^
9898
//
99-
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:57:16: Error: Can't assign spread elements of type 'List<B?>' to collection elements of type 'List<A>' because 'B?' is nullable and 'A' isn't.
99+
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:57:16: Error: Can't assign spread elements of type 'List<B?>' to collection elements of type 'List<A>'.
100100
// - 'List' is from 'dart:core'.
101101
// - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
102102
// - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
@@ -213,7 +213,7 @@ static method foo(self::B? x, core::List<self::B?> l, core::Map<self::B?, self::
213213
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
214214
A a = x; // Error.
215215
^" in x as{TypeError} self::A;
216-
<self::A>[invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:31:10: Error: Can't assign spread elements of type 'B?' to collection elements of type 'A' because 'B?' is nullable and 'A' isn't.
216+
<self::A>[invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:31:10: Error: Can't assign spread elements of type 'B?' to collection elements of type 'A'.
217217
- 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
218218
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
219219
<A>[...l]; // Error.
@@ -297,7 +297,7 @@ static method bar(core::List<self::B?> x, core::List<core::List<self::B?>> l, co
297297
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
298298
List<A> y = x; // Error.
299299
^" in x as{TypeError} core::List<self::A>;
300-
<core::List<self::A>>[invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:57:16: Error: Can't assign spread elements of type 'List<B?>' to collection elements of type 'List<A>' because 'B?' is nullable and 'A' isn't.
300+
<core::List<self::A>>[invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:57:16: Error: Can't assign spread elements of type 'List<B?>' to collection elements of type 'List<A>'.
301301
- 'List' is from 'dart:core'.
302302
- 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
303303
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.

pkg/front_end/testcases/nnbd/assignability_error_messages.dart.strong.modular.expect

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ library;
1414
// A a = x; // Error.
1515
// ^
1616
//
17-
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:31:10: Error: Can't assign spread elements of type 'B?' to collection elements of type 'A' because 'B?' is nullable and 'A' isn't.
17+
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:31:10: Error: Can't assign spread elements of type 'B?' to collection elements of type 'A'.
1818
// - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
1919
// - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
2020
// <A>[...l]; // Error.
@@ -96,7 +96,7 @@ library;
9696
// List<A> y = x; // Error.
9797
// ^
9898
//
99-
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:57:16: Error: Can't assign spread elements of type 'List<B?>' to collection elements of type 'List<A>' because 'B?' is nullable and 'A' isn't.
99+
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:57:16: Error: Can't assign spread elements of type 'List<B?>' to collection elements of type 'List<A>'.
100100
// - 'List' is from 'dart:core'.
101101
// - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
102102
// - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
@@ -213,7 +213,7 @@ static method foo(self::B? x, core::List<self::B?> l, core::Map<self::B?, self::
213213
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
214214
A a = x; // Error.
215215
^" in x as{TypeError} self::A;
216-
<self::A>[invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:31:10: Error: Can't assign spread elements of type 'B?' to collection elements of type 'A' because 'B?' is nullable and 'A' isn't.
216+
<self::A>[invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:31:10: Error: Can't assign spread elements of type 'B?' to collection elements of type 'A'.
217217
- 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
218218
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
219219
<A>[...l]; // Error.
@@ -297,7 +297,7 @@ static method bar(core::List<self::B?> x, core::List<core::List<self::B?>> l, co
297297
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
298298
List<A> y = x; // Error.
299299
^" in x as{TypeError} core::List<self::A>;
300-
<core::List<self::A>>[invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:57:16: Error: Can't assign spread elements of type 'List<B?>' to collection elements of type 'List<A>' because 'B?' is nullable and 'A' isn't.
300+
<core::List<self::A>>[invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:57:16: Error: Can't assign spread elements of type 'List<B?>' to collection elements of type 'List<A>'.
301301
- 'List' is from 'dart:core'.
302302
- 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
303303
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.

pkg/front_end/testcases/nnbd/assignability_error_messages.dart.strong.transformed.expect

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ library;
1414
// A a = x; // Error.
1515
// ^
1616
//
17-
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:31:10: Error: Can't assign spread elements of type 'B?' to collection elements of type 'A' because 'B?' is nullable and 'A' isn't.
17+
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:31:10: Error: Can't assign spread elements of type 'B?' to collection elements of type 'A'.
1818
// - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
1919
// - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
2020
// <A>[...l]; // Error.
@@ -96,7 +96,7 @@ library;
9696
// List<A> y = x; // Error.
9797
// ^
9898
//
99-
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:57:16: Error: Can't assign spread elements of type 'List<B?>' to collection elements of type 'List<A>' because 'B?' is nullable and 'A' isn't.
99+
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:57:16: Error: Can't assign spread elements of type 'List<B?>' to collection elements of type 'List<A>'.
100100
// - 'List' is from 'dart:core'.
101101
// - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
102102
// - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
@@ -213,7 +213,7 @@ static method foo(self::B? x, core::List<self::B?> l, core::Map<self::B?, self::
213213
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
214214
A a = x; // Error.
215215
^" in let self::B? #t2 = x in #t2 == null ?{self::A} #t2 as{TypeError} self::A : #t2{self::A};
216-
core::_GrowableList::_literal1<self::A>(invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:31:10: Error: Can't assign spread elements of type 'B?' to collection elements of type 'A' because 'B?' is nullable and 'A' isn't.
216+
core::_GrowableList::_literal1<self::A>(invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:31:10: Error: Can't assign spread elements of type 'B?' to collection elements of type 'A'.
217217
- 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
218218
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
219219
<A>[...l]; // Error.
@@ -308,7 +308,7 @@ static method bar(core::List<self::B?> x, core::List<core::List<self::B?>> l, co
308308
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
309309
List<A> y = x; // Error.
310310
^" in x as{TypeError} core::List<self::A>;
311-
core::_GrowableList::_literal1<core::List<self::A>>(invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:57:16: Error: Can't assign spread elements of type 'List<B?>' to collection elements of type 'List<A>' because 'B?' is nullable and 'A' isn't.
311+
core::_GrowableList::_literal1<core::List<self::A>>(invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:57:16: Error: Can't assign spread elements of type 'List<B?>' to collection elements of type 'List<A>'.
312312
- 'List' is from 'dart:core'.
313313
- 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
314314
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.

0 commit comments

Comments
 (0)