Skip to content

Commit e0b0c33

Browse files
chloestefantsovaCommit Queue
authored and
Commit Queue
committed
[cfe] Remove nullaiblity requirement from shape sufficiency checks
Closes #60076 Change-Id: I294056317cb4d6102d53efc95cadd4992f017339 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/408520 Reviewed-by: Martin Kustermann <[email protected]> Commit-Queue: Chloe Stefantsova <[email protected]>
1 parent 2c81261 commit e0b0c33

File tree

2 files changed

+5
-9
lines changed

2 files changed

+5
-9
lines changed

pkg/front_end/test/type_inference/type_schema_environment_nnbd_test.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1881,7 +1881,7 @@ class TypeSchemaEnvironmentTest extends TypeSchemaEnvironmentTestBase {
18811881
expressionStaticType: "A<int>?",
18821882
checkTargetType: "C<dynamic>",
18831883
typeParameters: "",
1884-
sufficiency: TypeShapeCheckSufficiency.insufficient);
1884+
sufficiency: TypeShapeCheckSufficiency.interfaceShape);
18851885
checkTypeShapeCheckSufficiency(
18861886
expressionStaticType: "B",
18871887
checkTargetType: "C<int>?",
@@ -1891,7 +1891,7 @@ class TypeSchemaEnvironmentTest extends TypeSchemaEnvironmentTestBase {
18911891
expressionStaticType: "B?",
18921892
checkTargetType: "C<Object?>",
18931893
typeParameters: "",
1894-
sufficiency: TypeShapeCheckSufficiency.insufficient);
1894+
sufficiency: TypeShapeCheckSufficiency.interfaceShape);
18951895
checkTypeShapeCheckSufficiency(
18961896
expressionStaticType: "B",
18971897
checkTargetType: "C<Object?>?",
@@ -1927,7 +1927,7 @@ class TypeSchemaEnvironmentTest extends TypeSchemaEnvironmentTestBase {
19271927
expressionStaticType: "D<int>?",
19281928
checkTargetType: "E<dynamic>",
19291929
typeParameters: "",
1930-
sufficiency: TypeShapeCheckSufficiency.insufficient);
1930+
sufficiency: TypeShapeCheckSufficiency.interfaceShape);
19311931
checkTypeShapeCheckSufficiency(
19321932
expressionStaticType: "D<num>",
19331933
checkTargetType: "E<int>?",
@@ -1968,7 +1968,7 @@ class TypeSchemaEnvironmentTest extends TypeSchemaEnvironmentTestBase {
19681968
expressionStaticType: "F<int>?",
19691969
checkTargetType: "G<dynamic, Object?>",
19701970
typeParameters: "",
1971-
sufficiency: TypeShapeCheckSufficiency.insufficient);
1971+
sufficiency: TypeShapeCheckSufficiency.interfaceShape);
19721972
checkTypeShapeCheckSufficiency(
19731973
expressionStaticType: "F<int>",
19741974
checkTargetType: "G<int, Object?>?",

pkg/kernel/lib/type_environment.dart

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -293,11 +293,7 @@ abstract class TypeEnvironment extends Types {
293293
{required DartType expressionStaticType,
294294
required DartType checkTargetType,
295295
required SubtypeCheckMode subtypeCheckMode}) {
296-
if (!IsSubtypeOf.basedSolelyOnNullabilities(
297-
expressionStaticType, checkTargetType)
298-
.inMode(subtypeCheckMode)) {
299-
return TypeShapeCheckSufficiency.insufficient;
300-
} else if (checkTargetType is InterfaceType &&
296+
if (checkTargetType is InterfaceType &&
301297
expressionStaticType is InterfaceType) {
302298
// Analyze if an interface shape check is sufficient.
303299

0 commit comments

Comments
 (0)