Index: pkg/analyzer/lib/src/summary/resynthesize.dart |
diff --git a/pkg/analyzer/lib/src/summary/resynthesize.dart b/pkg/analyzer/lib/src/summary/resynthesize.dart |
index aca28526b5f2ac55bccfeb526becc1b1cdf60882..85bb022ad9948f722bf096d62c3e0e96d9ed92f1 100644 |
--- a/pkg/analyzer/lib/src/summary/resynthesize.dart |
+++ b/pkg/analyzer/lib/src/summary/resynthesize.dart |
@@ -1407,6 +1407,9 @@ class _ResynthesizerContext implements ResynthesizerContext { |
_ResynthesizerContext(this._unitResynthesizer); |
@override |
+ bool get isStrongMode => _unitResynthesizer.summaryResynthesizer.strongMode; |
+ |
+ @override |
ElementAnnotationImpl buildAnnotation(ElementImpl context, UnlinkedExpr uc) { |
return _unitResynthesizer.buildAnnotation(context, uc); |
} |
@@ -1775,6 +1778,13 @@ class _UnitResynthesizer { |
libraryResynthesizer.getReferencedLocationComponents( |
linkedReference.dependency, linkedReference.unit, identifier); |
} |
+ if (!_resynthesizerContext.isStrongMode && |
+ locationComponents.length == 3 && |
+ locationComponents[0] == 'dart:async' && |
+ locationComponents[2] == 'FutureOr') { |
+ type = typeProvider.dynamicType; |
+ numTypeParameters = 0; |
+ } |
ElementLocation location = |
new ElementLocationImpl.con3(locationComponents); |
if (enclosingInfo != null) { |