Index: pkg/analyzer/lib/src/summary/link.dart |
diff --git a/pkg/analyzer/lib/src/summary/link.dart b/pkg/analyzer/lib/src/summary/link.dart |
index cfee0e2d7d1d24e5948e6c110b05f8e6ed84fb6e..26aafa86d97bd4b48ee5859790d10fcc227f6712 100644 |
--- a/pkg/analyzer/lib/src/summary/link.dart |
+++ b/pkg/analyzer/lib/src/summary/link.dart |
@@ -2228,6 +2228,9 @@ class ExprTypeComputer { |
case UnlinkedExprOperation.assignToIndex: |
_doAssignToIndex(); |
break; |
+ case UnlinkedExprOperation.await: |
+ _doAwait(); |
+ break; |
case UnlinkedExprOperation.extractIndex: |
_doExtractIndex(); |
break; |
@@ -2363,6 +2366,13 @@ class ExprTypeComputer { |
} |
} |
+ void _doAwait() { |
+ DartType type = stack.removeLast(); |
+ DartType typeArgument = type?.flattenFutures(linker.typeSystem); |
+ typeArgument = _dynamicIfNull(typeArgument); |
+ stack.add(typeArgument); |
+ } |
+ |
void _doConditional() { |
DartType elseType = stack.removeLast(); |
DartType thenType = stack.removeLast(); |
@@ -3413,10 +3423,10 @@ abstract class LibraryElementForLink< |
_linkedLibrary.importDependencies.map(_getDependency).toList(); |
@override |
- bool get isDartAsync => _absoluteUri == 'dart:async'; |
+ bool get isDartAsync => _absoluteUri.toString() == 'dart:async'; |
@override |
- bool get isDartCore => _absoluteUri == 'dart:core'; |
+ bool get isDartCore => _absoluteUri.toString() == 'dart:core'; |
/** |
* If this library is part of the build unit being linked, return the library |