Index: pkg/kernel/lib/transformations/continuation.dart |
diff --git a/pkg/kernel/lib/transformations/continuation.dart b/pkg/kernel/lib/transformations/continuation.dart |
index 5090511ca6230dfd3283dffaef23ce05b0a911e1..632731756d68c6aaebf3d8dd38724047df8416e9 100644 |
--- a/pkg/kernel/lib/transformations/continuation.dart |
+++ b/pkg/kernel/lib/transformations/continuation.dart |
@@ -44,6 +44,10 @@ class RecursiveContinuationRewriter extends Transformer { |
return node.accept(this); |
} |
+ visitProcedure(Procedure node) { |
+ return node.isAbstract ? node : super.visitProcedure(node); |
+ } |
+ |
visitFunctionNode(FunctionNode node) { |
switch (node.asyncMarker) { |
case AsyncMarker.Sync: |
@@ -824,7 +828,7 @@ class AsyncFunctionRewriter extends AsyncRewriterBase { |
completerVariable = new VariableDeclaration(":completer", |
initializer: new StaticInvocation(helper.completerConstructor, |
new Arguments([], types: completerTypeArguments)) |
- ..fileOffset = enclosingFunction.body.fileOffset, |
+ ..fileOffset = enclosingFunction.body?.fileOffset ?? -1, |
isFinal: true, |
type: completerType); |
statements.add(completerVariable); |