Chromium Code Reviews| 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) { |
|
Johnni Winther
2016/07/08 08:05:39
Ditto.
Harry Terkelsen
2016/07/18 17:35:58
Done.
|
| - 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) { |
|
Johnni Winther
2016/07/08 08:05:39
Ditto.
Harry Terkelsen
2016/07/18 17:35:58
Done.
|
| - 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); |
| } |
| } |
| } |