Index: tool/input_sdk/private/ddc_runtime/types.dart |
diff --git a/tool/input_sdk/private/ddc_runtime/types.dart b/tool/input_sdk/private/ddc_runtime/types.dart |
index c3dabfd1ec02bd7edad5de3173e65dd62756ab8c..8c0f09a74192afb5844328748d8f3f8aa728cf77 100644 |
--- a/tool/input_sdk/private/ddc_runtime/types.dart |
+++ b/tool/input_sdk/private/ddc_runtime/types.dart |
@@ -510,8 +510,11 @@ isSubtype_(t1, t2, covariant) => JS('', '''(() => { |
return false; |
} |
- // "Traditional" name-based subtype check. |
- { |
+ // "Traditional" name-based subtype check. Avoid passing |
+ // function types to the class subtype checks, since we don't |
+ // currently distinguish between generic typedefs and classes. |
+ if (!($t1 instanceof $AbstractFunctionType) && |
+ !($t2 instanceof $AbstractFunctionType)) { |
let result = $isClassSubType($t1, $t2, $covariant); |
if (result === true || result === null) return result; |
} |