| Index: pkg/compiler/lib/src/typechecker.dart
|
| diff --git a/pkg/compiler/lib/src/typechecker.dart b/pkg/compiler/lib/src/typechecker.dart
|
| index 69137ab1fe80fdf67cc45060b05385a93e3a9f9c..008878d3f2b2629ecd93d445f12e02a14ac34c64 100644
|
| --- a/pkg/compiler/lib/src/typechecker.dart
|
| +++ b/pkg/compiler/lib/src/typechecker.dart
|
| @@ -1742,11 +1742,7 @@ class TypeCheckerVisitor extends Visitor<DartType> {
|
|
|
| DartType visitAwait(Await node) {
|
| DartType expressionType = analyze(node.expression);
|
| - if (compiler.backend.supportsAsyncAwait) {
|
| - return types.flatten(expressionType);
|
| - } else {
|
| - return const DynamicType();
|
| - }
|
| + return types.flatten(expressionType);
|
| }
|
|
|
| DartType visitYield(Yield node) {
|
| @@ -1869,31 +1865,29 @@ class TypeCheckerVisitor extends Visitor<DartType> {
|
| visitAsyncForIn(AsyncForIn node) {
|
| DartType elementType = computeForInElementType(node);
|
| DartType expressionType = analyze(node.expression);
|
| - if (compiler.backend.supportsAsyncAwait) {
|
| - DartType streamOfDynamic = coreTypes.streamType();
|
| - if (!types.isAssignable(expressionType, streamOfDynamic)) {
|
| - reportMessage(node.expression, MessageKind.NOT_ASSIGNABLE,
|
| - {'fromType': expressionType, 'toType': streamOfDynamic},
|
| - isHint: true);
|
| - } else {
|
| - InterfaceType interfaceType =
|
| - Types.computeInterfaceType(resolution, expressionType);
|
| - if (interfaceType != null) {
|
| - InterfaceType streamType =
|
| - interfaceType.asInstanceOf(streamOfDynamic.element);
|
| - if (streamType != null) {
|
| - DartType streamElementType = streamType.typeArguments.first;
|
| - if (!types.isAssignable(streamElementType, elementType)) {
|
| - reportMessage(
|
| - node.expression,
|
| - MessageKind.FORIN_NOT_ASSIGNABLE,
|
| - {
|
| - 'currentType': streamElementType,
|
| - 'expressionType': expressionType,
|
| - 'elementType': elementType
|
| - },
|
| - isHint: true);
|
| - }
|
| + DartType streamOfDynamic = coreTypes.streamType();
|
| + if (!types.isAssignable(expressionType, streamOfDynamic)) {
|
| + reportMessage(node.expression, MessageKind.NOT_ASSIGNABLE,
|
| + {'fromType': expressionType, 'toType': streamOfDynamic},
|
| + isHint: true);
|
| + } else {
|
| + InterfaceType interfaceType =
|
| + Types.computeInterfaceType(resolution, expressionType);
|
| + if (interfaceType != null) {
|
| + InterfaceType streamType =
|
| + interfaceType.asInstanceOf(streamOfDynamic.element);
|
| + if (streamType != null) {
|
| + DartType streamElementType = streamType.typeArguments.first;
|
| + if (!types.isAssignable(streamElementType, elementType)) {
|
| + reportMessage(
|
| + node.expression,
|
| + MessageKind.FORIN_NOT_ASSIGNABLE,
|
| + {
|
| + 'currentType': streamElementType,
|
| + 'expressionType': expressionType,
|
| + 'elementType': elementType
|
| + },
|
| + isHint: true);
|
| }
|
| }
|
| }
|
|
|