| Index: pkg/analyzer/lib/src/summary/summary_sdk.dart
|
| diff --git a/pkg/analyzer/lib/src/summary/summary_sdk.dart b/pkg/analyzer/lib/src/summary/summary_sdk.dart
|
| index b178fdcf081225890781a03e9d1281d0cfd2d21b..7e9e1f5efd577b0525458880b9b7df8d872711d7 100644
|
| --- a/pkg/analyzer/lib/src/summary/summary_sdk.dart
|
| +++ b/pkg/analyzer/lib/src/summary/summary_sdk.dart
|
| @@ -15,6 +15,7 @@ import 'package:analyzer/src/generated/resolver.dart';
|
| import 'package:analyzer/src/generated/sdk.dart';
|
| import 'package:analyzer/src/generated/source.dart'
|
| show DartUriResolver, Source, SourceFactory;
|
| +import 'package:analyzer/src/generated/testing/element_factory.dart';
|
| import 'package:analyzer/src/summary/idl.dart';
|
| import 'package:analyzer/src/summary/package_bundle_reader.dart';
|
|
|
| @@ -192,7 +193,14 @@ class SummaryTypeProvider extends TypeProviderBase {
|
| @override
|
| InterfaceType get futureOrType {
|
| assert(_asyncLibrary != null);
|
| - _futureOrType ??= _getType(_asyncLibrary, "FutureOr");
|
| + try {
|
| + _futureOrType ??= _getType(_asyncLibrary, "FutureOr");
|
| + } on StateError {
|
| + // FutureOr<T> is still fairly new, so if we're analyzing an SDK that
|
| + // doesn't have it yet, create an element for it.
|
| + _futureOrType =
|
| + TypeProviderImpl.createPlaceholderFutureOr(futureType, objectType);
|
| + }
|
| return _futureOrType;
|
| }
|
|
|
|
|