Chromium Code Reviews| Index: pkg/compiler/lib/src/resolution/members.dart |
| diff --git a/pkg/compiler/lib/src/resolution/members.dart b/pkg/compiler/lib/src/resolution/members.dart |
| index 673fa5ffbd8e8c0a030e4e6eda3987a80c992829..610f610d392e7774c112cb587a7bbe10e26617da 100644 |
| --- a/pkg/compiler/lib/src/resolution/members.dart |
| +++ b/pkg/compiler/lib/src/resolution/members.dart |
| @@ -492,23 +492,17 @@ class ResolverTask extends CompilerTask { |
| } |
| static void processAsyncMarker(Compiler compiler, |
| - BaseFunctionElementX element) { |
| + BaseFunctionElementX element, |
| + Registry registry) { |
| FunctionExpression functionExpression = element.node; |
| AsyncModifier asyncModifier = functionExpression.asyncModifier; |
| if (asyncModifier != null) { |
| - if (!compiler.enableAsyncAwait) { |
| - compiler.reportError(asyncModifier, |
| - MessageKind.EXPERIMENTAL_ASYNC_AWAIT, |
| - {'modifier': element.asyncMarker}); |
| - } else if (!compiler.analyzeOnly) { |
| - compiler.reportError(asyncModifier, |
| - MessageKind.EXPERIMENTAL_ASYNC_AWAIT, |
| - {'modifier': element.asyncMarker}); |
| - } |
| if (asyncModifier.isAsynchronous) { |
| element.asyncMarker = asyncModifier.isYielding |
| ? AsyncMarker.ASYNC_STAR : AsyncMarker.ASYNC; |
| + Backend backend = compiler.backend; |
|
Johnni Winther
2015/02/02 10:45:10
Unneeded?
sigurdm
2015/02/03 16:59:27
Yes. Thanks!
|
| + |
| } else { |
| element.asyncMarker = AsyncMarker.SYNC_STAR; |
| } |
| @@ -526,6 +520,7 @@ class ResolverTask extends CompilerTask { |
| MessageKind.YIELDING_MODIFIER_ON_ARROW_BODY, |
| {'modifier': element.asyncMarker}); |
| } |
| + registry.registerAsyncMarker(element); |
| } |
| } |
| @@ -552,6 +547,7 @@ class ResolverTask extends CompilerTask { |
| ResolutionRegistry registry = visitor.registry; |
| registry.defineFunction(tree, element); |
| visitor.setupFunction(tree, element); |
| + processAsyncMarker(compiler, element, registry); |
| if (element.isGenerativeConstructor) { |
| // Even if there is no initializer list we still have to do the |
| @@ -626,7 +622,6 @@ class ResolverTask extends CompilerTask { |
| } else { |
| element.parseNode(compiler); |
| element.computeType(compiler); |
| - processAsyncMarker(compiler, element); |
| FunctionElementX implementation = element; |
| if (element.isExternal) { |
| implementation = compiler.backend.resolveExternalFunction(element); |
| @@ -2477,7 +2472,7 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> { |
| function.functionSignatureCache = |
| SignatureResolver.analyze(compiler, node.parameters, node.returnType, |
| function, registry, createRealParameters: true); |
| - ResolverTask.processAsyncMarker(compiler, function); |
| + ResolverTask.processAsyncMarker(compiler, function, registry); |
| checkLocalDefinitionName(node, function); |
| registry.defineFunction(node, function); |
| if (doAddToScope) { |