[model] Remove nullability-related error messages in map literals
This is a follow-up to https://dart-review.googlesource.com/c/sdk/+/428980 Change-Id: I7b6b3e2cc920f29b4ce4f409615efb7a858e9fe4 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/429360 Reviewed-by: Johnni Winther <johnniwinther@google.com> Commit-Queue: Chloe Stefantsova <cstefantsova@google.com>
This commit is contained in:
committed by
Commit Queue
parent
9439795445
commit
ca694e46c1
@@ -4241,96 +4241,6 @@ Message _withArgumentsSpreadMapEntryElementKeyTypeMismatch(
|
||||
);
|
||||
}
|
||||
|
||||
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
|
||||
const Template<Message Function(DartType _type, DartType _type2)>
|
||||
templateSpreadMapEntryElementKeyTypeMismatchNullability =
|
||||
const Template<Message Function(DartType _type, DartType _type2)>(
|
||||
"SpreadMapEntryElementKeyTypeMismatchNullability",
|
||||
problemMessageTemplate:
|
||||
r"""Can't assign spread entry keys of type '#type' to map entry keys of type '#type2' because '#type' is nullable and '#type2' isn't.""",
|
||||
withArguments: _withArgumentsSpreadMapEntryElementKeyTypeMismatchNullability,
|
||||
);
|
||||
|
||||
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
|
||||
const Code<Message Function(DartType _type, DartType _type2)>
|
||||
codeSpreadMapEntryElementKeyTypeMismatchNullability =
|
||||
const Code<Message Function(DartType _type, DartType _type2)>(
|
||||
"SpreadMapEntryElementKeyTypeMismatchNullability",
|
||||
analyzerCodes: <String>["MAP_KEY_TYPE_NOT_ASSIGNABLE"],
|
||||
);
|
||||
|
||||
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
|
||||
Message _withArgumentsSpreadMapEntryElementKeyTypeMismatchNullability(
|
||||
DartType _type, DartType _type2) {
|
||||
TypeLabeler labeler = new TypeLabeler();
|
||||
List<Object> typeParts = labeler.labelType(_type);
|
||||
List<Object> type2Parts = labeler.labelType(_type2);
|
||||
String type = typeParts.join();
|
||||
String type2 = type2Parts.join();
|
||||
return new Message(
|
||||
codeSpreadMapEntryElementKeyTypeMismatchNullability,
|
||||
problemMessage:
|
||||
"""Can't assign spread entry keys of type '${type}' to map entry keys of type '${type2}' because '${type}' is nullable and '${type2}' isn't.""" +
|
||||
labeler.originMessages,
|
||||
arguments: {
|
||||
'type': _type,
|
||||
'type2': _type2,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
|
||||
const Template<
|
||||
Message Function(
|
||||
DartType _type, DartType _type2, DartType _type3, DartType _type4)>
|
||||
templateSpreadMapEntryElementKeyTypeMismatchPartNullability =
|
||||
const Template<
|
||||
Message Function(
|
||||
DartType _type, DartType _type2, DartType _type3, DartType _type4)>(
|
||||
"SpreadMapEntryElementKeyTypeMismatchPartNullability",
|
||||
problemMessageTemplate:
|
||||
r"""Can't assign spread entry keys of type '#type' to map entry keys of type '#type2' because '#type3' is nullable and '#type4' isn't.""",
|
||||
withArguments:
|
||||
_withArgumentsSpreadMapEntryElementKeyTypeMismatchPartNullability,
|
||||
);
|
||||
|
||||
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
|
||||
const Code<
|
||||
Message Function(
|
||||
DartType _type, DartType _type2, DartType _type3, DartType _type4)>
|
||||
codeSpreadMapEntryElementKeyTypeMismatchPartNullability = const Code<
|
||||
Message Function(
|
||||
DartType _type, DartType _type2, DartType _type3, DartType _type4)>(
|
||||
"SpreadMapEntryElementKeyTypeMismatchPartNullability",
|
||||
analyzerCodes: <String>["MAP_KEY_TYPE_NOT_ASSIGNABLE"],
|
||||
);
|
||||
|
||||
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
|
||||
Message _withArgumentsSpreadMapEntryElementKeyTypeMismatchPartNullability(
|
||||
DartType _type, DartType _type2, DartType _type3, DartType _type4) {
|
||||
TypeLabeler labeler = new TypeLabeler();
|
||||
List<Object> typeParts = labeler.labelType(_type);
|
||||
List<Object> type2Parts = labeler.labelType(_type2);
|
||||
List<Object> type3Parts = labeler.labelType(_type3);
|
||||
List<Object> type4Parts = labeler.labelType(_type4);
|
||||
String type = typeParts.join();
|
||||
String type2 = type2Parts.join();
|
||||
String type3 = type3Parts.join();
|
||||
String type4 = type4Parts.join();
|
||||
return new Message(
|
||||
codeSpreadMapEntryElementKeyTypeMismatchPartNullability,
|
||||
problemMessage:
|
||||
"""Can't assign spread entry keys of type '${type}' to map entry keys of type '${type2}' because '${type3}' is nullable and '${type4}' isn't.""" +
|
||||
labeler.originMessages,
|
||||
arguments: {
|
||||
'type': _type,
|
||||
'type2': _type2,
|
||||
'type3': _type3,
|
||||
'type4': _type4,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
|
||||
const Template<Message Function(DartType _type, DartType _type2)>
|
||||
templateSpreadMapEntryElementValueTypeMismatch =
|
||||
@@ -4369,97 +4279,6 @@ Message _withArgumentsSpreadMapEntryElementValueTypeMismatch(
|
||||
);
|
||||
}
|
||||
|
||||
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
|
||||
const Template<Message Function(DartType _type, DartType _type2)>
|
||||
templateSpreadMapEntryElementValueTypeMismatchNullability =
|
||||
const Template<Message Function(DartType _type, DartType _type2)>(
|
||||
"SpreadMapEntryElementValueTypeMismatchNullability",
|
||||
problemMessageTemplate:
|
||||
r"""Can't assign spread entry values of type '#type' to map entry values of type '#type2' because '#type' is nullable and '#type2' isn't.""",
|
||||
withArguments:
|
||||
_withArgumentsSpreadMapEntryElementValueTypeMismatchNullability,
|
||||
);
|
||||
|
||||
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
|
||||
const Code<Message Function(DartType _type, DartType _type2)>
|
||||
codeSpreadMapEntryElementValueTypeMismatchNullability =
|
||||
const Code<Message Function(DartType _type, DartType _type2)>(
|
||||
"SpreadMapEntryElementValueTypeMismatchNullability",
|
||||
analyzerCodes: <String>["MAP_VALUE_TYPE_NOT_ASSIGNABLE"],
|
||||
);
|
||||
|
||||
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
|
||||
Message _withArgumentsSpreadMapEntryElementValueTypeMismatchNullability(
|
||||
DartType _type, DartType _type2) {
|
||||
TypeLabeler labeler = new TypeLabeler();
|
||||
List<Object> typeParts = labeler.labelType(_type);
|
||||
List<Object> type2Parts = labeler.labelType(_type2);
|
||||
String type = typeParts.join();
|
||||
String type2 = type2Parts.join();
|
||||
return new Message(
|
||||
codeSpreadMapEntryElementValueTypeMismatchNullability,
|
||||
problemMessage:
|
||||
"""Can't assign spread entry values of type '${type}' to map entry values of type '${type2}' because '${type}' is nullable and '${type2}' isn't.""" +
|
||||
labeler.originMessages,
|
||||
arguments: {
|
||||
'type': _type,
|
||||
'type2': _type2,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
|
||||
const Template<
|
||||
Message Function(
|
||||
DartType _type, DartType _type2, DartType _type3, DartType _type4)>
|
||||
templateSpreadMapEntryElementValueTypeMismatchPartNullability =
|
||||
const Template<
|
||||
Message Function(
|
||||
DartType _type, DartType _type2, DartType _type3, DartType _type4)>(
|
||||
"SpreadMapEntryElementValueTypeMismatchPartNullability",
|
||||
problemMessageTemplate:
|
||||
r"""Can't assign spread entry values of type '#type' to map entry values of type '#type2' because '#type3' is nullable and '#type4' isn't.""",
|
||||
withArguments:
|
||||
_withArgumentsSpreadMapEntryElementValueTypeMismatchPartNullability,
|
||||
);
|
||||
|
||||
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
|
||||
const Code<
|
||||
Message Function(
|
||||
DartType _type, DartType _type2, DartType _type3, DartType _type4)>
|
||||
codeSpreadMapEntryElementValueTypeMismatchPartNullability = const Code<
|
||||
Message Function(
|
||||
DartType _type, DartType _type2, DartType _type3, DartType _type4)>(
|
||||
"SpreadMapEntryElementValueTypeMismatchPartNullability",
|
||||
analyzerCodes: <String>["MAP_VALUE_TYPE_NOT_ASSIGNABLE"],
|
||||
);
|
||||
|
||||
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
|
||||
Message _withArgumentsSpreadMapEntryElementValueTypeMismatchPartNullability(
|
||||
DartType _type, DartType _type2, DartType _type3, DartType _type4) {
|
||||
TypeLabeler labeler = new TypeLabeler();
|
||||
List<Object> typeParts = labeler.labelType(_type);
|
||||
List<Object> type2Parts = labeler.labelType(_type2);
|
||||
List<Object> type3Parts = labeler.labelType(_type3);
|
||||
List<Object> type4Parts = labeler.labelType(_type4);
|
||||
String type = typeParts.join();
|
||||
String type2 = type2Parts.join();
|
||||
String type3 = type3Parts.join();
|
||||
String type4 = type4Parts.join();
|
||||
return new Message(
|
||||
codeSpreadMapEntryElementValueTypeMismatchPartNullability,
|
||||
problemMessage:
|
||||
"""Can't assign spread entry values of type '${type}' to map entry values of type '${type2}' because '${type3}' is nullable and '${type4}' isn't.""" +
|
||||
labeler.originMessages,
|
||||
arguments: {
|
||||
'type': _type,
|
||||
'type2': _type2,
|
||||
'type3': _type3,
|
||||
'type4': _type4,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
|
||||
const Template<Message Function(DartType _type)>
|
||||
templateSpreadMapEntryTypeMismatch =
|
||||
|
||||
@@ -4464,68 +4464,18 @@ class InferenceVisitorImpl extends InferenceVisitorBase
|
||||
Expression? keyError;
|
||||
Expression? valueError;
|
||||
if (!isAssignable(inferredKeyType, actualKeyType)) {
|
||||
IsSubtypeOf subtypeCheckResult =
|
||||
typeSchemaEnvironment.performNullabilityAwareSubtypeCheck(
|
||||
actualKeyType, inferredKeyType);
|
||||
if (subtypeCheckResult.isSubtypeWhenIgnoringNullabilities()) {
|
||||
if (actualKeyType == subtypeCheckResult.subtype &&
|
||||
inferredKeyType == subtypeCheckResult.supertype) {
|
||||
keyError = helper.buildProblem(
|
||||
templateSpreadMapEntryElementKeyTypeMismatchNullability
|
||||
.withArguments(actualKeyType, inferredKeyType),
|
||||
entry.expression.fileOffset,
|
||||
1);
|
||||
} else {
|
||||
keyError = helper.buildProblem(
|
||||
// ignore: lines_longer_than_80_chars
|
||||
templateSpreadMapEntryElementKeyTypeMismatchPartNullability
|
||||
.withArguments(
|
||||
actualKeyType,
|
||||
inferredKeyType,
|
||||
subtypeCheckResult.subtype!,
|
||||
subtypeCheckResult.supertype!),
|
||||
entry.expression.fileOffset,
|
||||
1);
|
||||
}
|
||||
} else {
|
||||
keyError = helper.buildProblem(
|
||||
templateSpreadMapEntryElementKeyTypeMismatch.withArguments(
|
||||
actualKeyType, inferredKeyType),
|
||||
entry.expression.fileOffset,
|
||||
1);
|
||||
}
|
||||
keyError = helper.buildProblem(
|
||||
templateSpreadMapEntryElementKeyTypeMismatch.withArguments(
|
||||
actualKeyType, inferredKeyType),
|
||||
entry.expression.fileOffset,
|
||||
1);
|
||||
}
|
||||
if (!isAssignable(inferredValueType, actualValueType)) {
|
||||
IsSubtypeOf subtypeCheckResult =
|
||||
typeSchemaEnvironment.performNullabilityAwareSubtypeCheck(
|
||||
actualValueType, inferredValueType);
|
||||
if (subtypeCheckResult.isSubtypeWhenIgnoringNullabilities()) {
|
||||
if (actualValueType == subtypeCheckResult.subtype &&
|
||||
inferredValueType == subtypeCheckResult.supertype) {
|
||||
valueError = helper.buildProblem(
|
||||
templateSpreadMapEntryElementValueTypeMismatchNullability
|
||||
.withArguments(actualValueType, inferredValueType),
|
||||
entry.expression.fileOffset,
|
||||
1);
|
||||
} else {
|
||||
valueError = helper.buildProblem(
|
||||
// ignore: lines_longer_than_80_chars
|
||||
templateSpreadMapEntryElementValueTypeMismatchPartNullability
|
||||
.withArguments(
|
||||
actualValueType,
|
||||
inferredValueType,
|
||||
subtypeCheckResult.subtype!,
|
||||
subtypeCheckResult.supertype!),
|
||||
entry.expression.fileOffset,
|
||||
1);
|
||||
}
|
||||
} else {
|
||||
valueError = helper.buildProblem(
|
||||
templateSpreadMapEntryElementValueTypeMismatch.withArguments(
|
||||
actualValueType, inferredValueType),
|
||||
entry.expression.fileOffset,
|
||||
1);
|
||||
}
|
||||
valueError = helper.buildProblem(
|
||||
templateSpreadMapEntryElementValueTypeMismatch.withArguments(
|
||||
actualValueType, inferredValueType),
|
||||
entry.expression.fileOffset,
|
||||
1);
|
||||
}
|
||||
if (spreadType.isPotentiallyNullable &&
|
||||
spreadType is! DynamicType &&
|
||||
|
||||
@@ -5181,24 +5181,6 @@ SpreadMapEntryElementKeyTypeMismatch:
|
||||
Map<int, int> b = <int, int>{...a};
|
||||
}
|
||||
|
||||
SpreadMapEntryElementKeyTypeMismatchNullability:
|
||||
problemMessage: "Can't assign spread entry keys of type '#type' to map entry keys of type '#type2' because '#type' is nullable and '#type2' isn't."
|
||||
analyzerCode: MAP_KEY_TYPE_NOT_ASSIGNABLE
|
||||
script: >
|
||||
main() {
|
||||
Map<String?, int> a = <String?, int>{"foo": 42, null: 87};
|
||||
Map<String, int> b = <String, int>{...a};
|
||||
}
|
||||
|
||||
SpreadMapEntryElementKeyTypeMismatchPartNullability:
|
||||
problemMessage: "Can't assign spread entry keys of type '#type' to map entry keys of type '#type2' because '#type3' is nullable and '#type4' isn't."
|
||||
analyzerCode: MAP_KEY_TYPE_NOT_ASSIGNABLE
|
||||
script: >
|
||||
main() {
|
||||
Map<List<String?>, int> a = <List<String?>, int>{["foo"]: 42, [null]: 87};
|
||||
Map<List<String>, int> b = <List<String>, int>{...a};
|
||||
}
|
||||
|
||||
SpreadMapEntryElementValueTypeMismatch:
|
||||
problemMessage: "Can't assign spread entry values of type '#type' to map entry values of type '#type2'."
|
||||
analyzerCode: MAP_VALUE_TYPE_NOT_ASSIGNABLE
|
||||
@@ -5208,24 +5190,6 @@ SpreadMapEntryElementValueTypeMismatch:
|
||||
Map<String, String> b = <String, String>{...a};
|
||||
}
|
||||
|
||||
SpreadMapEntryElementValueTypeMismatchNullability:
|
||||
problemMessage: "Can't assign spread entry values of type '#type' to map entry values of type '#type2' because '#type' is nullable and '#type2' isn't."
|
||||
analyzerCode: MAP_VALUE_TYPE_NOT_ASSIGNABLE
|
||||
script: >
|
||||
main() {
|
||||
Map<String, int?> a = <String, int?>{"foo": 42, "bar": null};
|
||||
Map<String, int> b = <String, int>{...a};
|
||||
}
|
||||
|
||||
SpreadMapEntryElementValueTypeMismatchPartNullability:
|
||||
problemMessage: "Can't assign spread entry values of type '#type' to map entry values of type '#type2' because '#type3' is nullable and '#type4' isn't."
|
||||
analyzerCode: MAP_VALUE_TYPE_NOT_ASSIGNABLE
|
||||
script: >
|
||||
main() {
|
||||
Map<String, List<int?>> a = <String, List<int?>>{"foo": [42], "bar": [null]};
|
||||
Map<String, List<int>> b = <String, List<int>>{...a};
|
||||
}
|
||||
|
||||
CantDisambiguateNotEnoughInformation:
|
||||
problemMessage: "Not enough type information to disambiguate between literal set and literal map."
|
||||
correctionMessage: "Try providing type arguments for the literal explicitly to disambiguate it."
|
||||
|
||||
@@ -24,13 +24,13 @@ library;
|
||||
// <A>[...l2]; // Error.
|
||||
// ^
|
||||
//
|
||||
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:33:13: Error: Can't assign spread entry keys of type 'B?' to map entry keys of type 'A' because 'B?' is nullable and 'A' isn't.
|
||||
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:33:13: Error: Can't assign spread entry keys of type 'B?' to map entry keys of type 'A'.
|
||||
// - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
// - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
// <A, A>{...m}; // Error.
|
||||
// ^
|
||||
//
|
||||
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:33:13: Error: Can't assign spread entry values of type 'B?' to map entry values of type 'A' because 'B?' is nullable and 'A' isn't.
|
||||
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:33:13: Error: Can't assign spread entry values of type 'B?' to map entry values of type 'A'.
|
||||
// - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
// - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
// <A, A>{...m}; // Error.
|
||||
@@ -103,14 +103,14 @@ library;
|
||||
// <List<A>>[...l]; // Error.
|
||||
// ^
|
||||
//
|
||||
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:58:25: Error: Can't assign spread entry keys of type 'List<B?>' to map entry keys of type 'List<A>' because 'B?' is nullable and 'A' isn't.
|
||||
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:58:25: Error: Can't assign spread entry keys of type 'List<B?>' to map entry keys of type 'List<A>'.
|
||||
// - 'List' is from 'dart:core'.
|
||||
// - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
// - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
// <List<A>, List<A>>{...m}; // Error.
|
||||
// ^
|
||||
//
|
||||
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:58:25: Error: Can't assign spread entry values of type 'List<B?>' to map entry values of type 'List<A>' because 'B?' is nullable and 'A' isn't.
|
||||
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:58:25: Error: Can't assign spread entry values of type 'List<B?>' to map entry values of type 'List<A>'.
|
||||
// - 'List' is from 'dart:core'.
|
||||
// - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
// - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
@@ -221,11 +221,11 @@ static method foo(self::B? x, core::List<self::B?> l, core::Map<self::B?, self::
|
||||
<self::A>[invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:32:10: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
|
||||
<A>[...l2]; // Error.
|
||||
^"];
|
||||
<self::A, self::A>{invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:33:13: Error: Can't assign spread entry keys of type 'B?' to map entry keys of type 'A' because 'B?' is nullable and 'A' isn't.
|
||||
<self::A, self::A>{invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:33:13: Error: Can't assign spread entry keys of type 'B?' to map entry keys of type 'A'.
|
||||
- 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
<A, A>{...m}; // Error.
|
||||
^": invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:33:13: Error: Can't assign spread entry values of type 'B?' to map entry values of type 'A' because 'B?' is nullable and 'A' isn't.
|
||||
^": invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:33:13: Error: Can't assign spread entry values of type 'B?' to map entry values of type 'A'.
|
||||
- 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
<A, A>{...m}; // Error.
|
||||
@@ -303,12 +303,12 @@ static method bar(core::List<self::B?> x, core::List<core::List<self::B?>> l, co
|
||||
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
<List<A>>[...l]; // Error.
|
||||
^"];
|
||||
<core::List<self::A>, core::List<self::A>>{invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:58:25: Error: Can't assign spread entry keys of type 'List<B?>' to map entry keys of type 'List<A>' because 'B?' is nullable and 'A' isn't.
|
||||
<core::List<self::A>, core::List<self::A>>{invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:58:25: Error: Can't assign spread entry keys of type 'List<B?>' to map entry keys of type 'List<A>'.
|
||||
- 'List' is from 'dart:core'.
|
||||
- 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
<List<A>, List<A>>{...m}; // Error.
|
||||
^": invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:58:25: Error: Can't assign spread entry values of type 'List<B?>' to map entry values of type 'List<A>' because 'B?' is nullable and 'A' isn't.
|
||||
^": invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:58:25: Error: Can't assign spread entry values of type 'List<B?>' to map entry values of type 'List<A>'.
|
||||
- 'List' is from 'dart:core'.
|
||||
- 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
|
||||
+8
-8
@@ -24,13 +24,13 @@ library;
|
||||
// <A>[...l2]; // Error.
|
||||
// ^
|
||||
//
|
||||
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:33:13: Error: Can't assign spread entry keys of type 'B?' to map entry keys of type 'A' because 'B?' is nullable and 'A' isn't.
|
||||
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:33:13: Error: Can't assign spread entry keys of type 'B?' to map entry keys of type 'A'.
|
||||
// - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
// - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
// <A, A>{...m}; // Error.
|
||||
// ^
|
||||
//
|
||||
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:33:13: Error: Can't assign spread entry values of type 'B?' to map entry values of type 'A' because 'B?' is nullable and 'A' isn't.
|
||||
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:33:13: Error: Can't assign spread entry values of type 'B?' to map entry values of type 'A'.
|
||||
// - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
// - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
// <A, A>{...m}; // Error.
|
||||
@@ -103,14 +103,14 @@ library;
|
||||
// <List<A>>[...l]; // Error.
|
||||
// ^
|
||||
//
|
||||
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:58:25: Error: Can't assign spread entry keys of type 'List<B?>' to map entry keys of type 'List<A>' because 'B?' is nullable and 'A' isn't.
|
||||
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:58:25: Error: Can't assign spread entry keys of type 'List<B?>' to map entry keys of type 'List<A>'.
|
||||
// - 'List' is from 'dart:core'.
|
||||
// - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
// - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
// <List<A>, List<A>>{...m}; // Error.
|
||||
// ^
|
||||
//
|
||||
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:58:25: Error: Can't assign spread entry values of type 'List<B?>' to map entry values of type 'List<A>' because 'B?' is nullable and 'A' isn't.
|
||||
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:58:25: Error: Can't assign spread entry values of type 'List<B?>' to map entry values of type 'List<A>'.
|
||||
// - 'List' is from 'dart:core'.
|
||||
// - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
// - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
@@ -221,11 +221,11 @@ static method foo(self::B? x, core::List<self::B?> l, core::Map<self::B?, self::
|
||||
<self::A>[invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:32:10: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
|
||||
<A>[...l2]; // Error.
|
||||
^"];
|
||||
<self::A, self::A>{invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:33:13: Error: Can't assign spread entry keys of type 'B?' to map entry keys of type 'A' because 'B?' is nullable and 'A' isn't.
|
||||
<self::A, self::A>{invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:33:13: Error: Can't assign spread entry keys of type 'B?' to map entry keys of type 'A'.
|
||||
- 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
<A, A>{...m}; // Error.
|
||||
^": invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:33:13: Error: Can't assign spread entry values of type 'B?' to map entry values of type 'A' because 'B?' is nullable and 'A' isn't.
|
||||
^": invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:33:13: Error: Can't assign spread entry values of type 'B?' to map entry values of type 'A'.
|
||||
- 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
<A, A>{...m}; // Error.
|
||||
@@ -303,12 +303,12 @@ static method bar(core::List<self::B?> x, core::List<core::List<self::B?>> l, co
|
||||
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
<List<A>>[...l]; // Error.
|
||||
^"];
|
||||
<core::List<self::A>, core::List<self::A>>{invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:58:25: Error: Can't assign spread entry keys of type 'List<B?>' to map entry keys of type 'List<A>' because 'B?' is nullable and 'A' isn't.
|
||||
<core::List<self::A>, core::List<self::A>>{invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:58:25: Error: Can't assign spread entry keys of type 'List<B?>' to map entry keys of type 'List<A>'.
|
||||
- 'List' is from 'dart:core'.
|
||||
- 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
<List<A>, List<A>>{...m}; // Error.
|
||||
^": invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:58:25: Error: Can't assign spread entry values of type 'List<B?>' to map entry values of type 'List<A>' because 'B?' is nullable and 'A' isn't.
|
||||
^": invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:58:25: Error: Can't assign spread entry values of type 'List<B?>' to map entry values of type 'List<A>'.
|
||||
- 'List' is from 'dart:core'.
|
||||
- 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
|
||||
+8
-8
@@ -24,13 +24,13 @@ library;
|
||||
// <A>[...l2]; // Error.
|
||||
// ^
|
||||
//
|
||||
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:33:13: Error: Can't assign spread entry keys of type 'B?' to map entry keys of type 'A' because 'B?' is nullable and 'A' isn't.
|
||||
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:33:13: Error: Can't assign spread entry keys of type 'B?' to map entry keys of type 'A'.
|
||||
// - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
// - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
// <A, A>{...m}; // Error.
|
||||
// ^
|
||||
//
|
||||
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:33:13: Error: Can't assign spread entry values of type 'B?' to map entry values of type 'A' because 'B?' is nullable and 'A' isn't.
|
||||
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:33:13: Error: Can't assign spread entry values of type 'B?' to map entry values of type 'A'.
|
||||
// - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
// - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
// <A, A>{...m}; // Error.
|
||||
@@ -103,14 +103,14 @@ library;
|
||||
// <List<A>>[...l]; // Error.
|
||||
// ^
|
||||
//
|
||||
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:58:25: Error: Can't assign spread entry keys of type 'List<B?>' to map entry keys of type 'List<A>' because 'B?' is nullable and 'A' isn't.
|
||||
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:58:25: Error: Can't assign spread entry keys of type 'List<B?>' to map entry keys of type 'List<A>'.
|
||||
// - 'List' is from 'dart:core'.
|
||||
// - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
// - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
// <List<A>, List<A>>{...m}; // Error.
|
||||
// ^
|
||||
//
|
||||
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:58:25: Error: Can't assign spread entry values of type 'List<B?>' to map entry values of type 'List<A>' because 'B?' is nullable and 'A' isn't.
|
||||
// pkg/front_end/testcases/nnbd/assignability_error_messages.dart:58:25: Error: Can't assign spread entry values of type 'List<B?>' to map entry values of type 'List<A>'.
|
||||
// - 'List' is from 'dart:core'.
|
||||
// - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
// - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
@@ -221,11 +221,11 @@ static method foo(self::B? x, core::List<self::B?> l, core::Map<self::B?, self::
|
||||
core::_GrowableList::_literal1<self::A>(invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:32:10: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
|
||||
<A>[...l2]; // Error.
|
||||
^");
|
||||
<self::A, self::A>{invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:33:13: Error: Can't assign spread entry keys of type 'B?' to map entry keys of type 'A' because 'B?' is nullable and 'A' isn't.
|
||||
<self::A, self::A>{invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:33:13: Error: Can't assign spread entry keys of type 'B?' to map entry keys of type 'A'.
|
||||
- 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
<A, A>{...m}; // Error.
|
||||
^": invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:33:13: Error: Can't assign spread entry values of type 'B?' to map entry values of type 'A' because 'B?' is nullable and 'A' isn't.
|
||||
^": invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:33:13: Error: Can't assign spread entry values of type 'B?' to map entry values of type 'A'.
|
||||
- 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
<A, A>{...m}; // Error.
|
||||
@@ -314,12 +314,12 @@ static method bar(core::List<self::B?> x, core::List<core::List<self::B?>> l, co
|
||||
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
<List<A>>[...l]; // Error.
|
||||
^");
|
||||
<core::List<self::A>, core::List<self::A>>{invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:58:25: Error: Can't assign spread entry keys of type 'List<B?>' to map entry keys of type 'List<A>' because 'B?' is nullable and 'A' isn't.
|
||||
<core::List<self::A>, core::List<self::A>>{invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:58:25: Error: Can't assign spread entry keys of type 'List<B?>' to map entry keys of type 'List<A>'.
|
||||
- 'List' is from 'dart:core'.
|
||||
- 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
<List<A>, List<A>>{...m}; // Error.
|
||||
^": invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:58:25: Error: Can't assign spread entry values of type 'List<B?>' to map entry values of type 'List<A>' because 'B?' is nullable and 'A' isn't.
|
||||
^": invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:58:25: Error: Can't assign spread entry values of type 'List<B?>' to map entry values of type 'List<A>'.
|
||||
- 'List' is from 'dart:core'.
|
||||
- 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
- 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
|
||||
|
||||
Reference in New Issue
Block a user