Skip to content

Commit 3d9a356

Browse files
fishythefishcommit-bot@chromium.org
authored andcommitted
[dart2js] (New RTI) Check function subtypes after checking for FutureOr.
Change-Id: I0cde41a8010563d7288d5473669cb87f0064ce63 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112483 Reviewed-by: Stephen Adams <[email protected]> Commit-Queue: Mayank Patke <[email protected]>
1 parent af5a466 commit 3d9a356

File tree

1 file changed

+8
-8
lines changed
  • sdk/lib/_internal/js_runtime/lib

1 file changed

+8
-8
lines changed

sdk/lib/_internal/js_runtime/lib/rti.dart

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1877,14 +1877,6 @@ bool _isSubtype(universe, Rti s, sEnv, Rti t, tEnv) {
18771877

18781878
if (isNullType(s)) return true;
18791879

1880-
if (Rti._isFunctionType(t)) {
1881-
return _isFunctionSubtype(universe, s, sEnv, t, tEnv);
1882-
}
1883-
1884-
if (Rti._isFunctionType(s)) {
1885-
return isFunctionType(t);
1886-
}
1887-
18881880
if (isFutureOrType(t)) {
18891881
// [t] is FutureOr<T>.
18901882
Rti tTypeArgument = Rti._getFutureOrArgument(t);
@@ -1904,6 +1896,14 @@ bool _isSubtype(universe, Rti s, sEnv, Rti t, tEnv) {
19041896
}
19051897
}
19061898

1899+
if (Rti._isFunctionType(t)) {
1900+
return _isFunctionSubtype(universe, s, sEnv, t, tEnv);
1901+
}
1902+
1903+
if (Rti._isFunctionType(s)) {
1904+
return isFunctionType(t);
1905+
}
1906+
19071907
assert(Rti._getKind(t) == Rti.kindInterface);
19081908
String tName = Rti._getInterfaceName(t);
19091909
var tArgs = Rti._getInterfaceTypeArguments(t);

0 commit comments

Comments
 (0)