| Index: pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/operations.dart
|
| diff --git a/pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/operations.dart b/pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/operations.dart
|
| index 9eba1b2c3ad6fb79a9bfcc0a2b007cc5ea2579c6..b326b6614a73d656ae10b03508a8768b51a3c315 100644
|
| --- a/pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/operations.dart
|
| +++ b/pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/operations.dart
|
| @@ -470,8 +470,16 @@ final _ignoreTypeFailure = JS(
|
| // TODO(vsm): Remove this hack ...
|
| // This is primarily due to the lack of generic methods,
|
| // but we need to triage all the types.
|
| + if ($_isFutureOr(type)) {
|
| + // Ignore if we would ignore either side of union.
|
| + let typeArg = $getGenericArgs(type)[0];
|
| + let typeFuture = ${getGenericClass(Future)}(typeArg);
|
| + return $_ignoreTypeFailure(actual, typeFuture) ||
|
| + $_ignoreTypeFailure(actual, typeArg);
|
| + }
|
| +
|
| if (!!$isSubtype(type, $Iterable) && !!$isSubtype(actual, $Iterable) ||
|
| - !!$isSubtype(type, $FutureOr) && !!$isSubtype(actual, $Future) ||
|
| + !!$isSubtype(type, $Future) && !!$isSubtype(actual, $Future) ||
|
| !!$isSubtype(type, $Map) && !!$isSubtype(actual, $Map) ||
|
| $isFunctionType(type) && $isFunctionType(actual) ||
|
| !!$isSubtype(type, $Stream) && !!$isSubtype(actual, $Stream) ||
|
|
|