| Index: pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart
|
| diff --git a/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart b/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart
|
| index 538bddf0d4aaf35c32f5d275fc48348ba8ca7ac5..4e0bb8031b7e16b6581f763ecec6855aaa87b72d 100644
|
| --- a/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart
|
| +++ b/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart
|
| @@ -540,12 +540,7 @@ class IrBuilder {
|
| ir.FunctionDefinition buildFunctionDefinition(
|
| FunctionElement element,
|
| List<ConstantExpression> defaults) {
|
| - if (!element.isAbstract) {
|
| - _ensureReturn();
|
| - return new ir.FunctionDefinition(
|
| - element, state.returnContinuation, _parameters, _root,
|
| - state.localConstants, defaults);
|
| - } else {
|
| + if (element.isAbstract || element.isExternal) {
|
| assert(invariant(element, _root == null,
|
| message: "Non-empty body for abstract method $element: $_root"));
|
| assert(invariant(element, state.localConstants.isEmpty,
|
| @@ -553,6 +548,11 @@ class IrBuilder {
|
| "${state.localConstants}"));
|
| return new ir.FunctionDefinition.abstract(
|
| element, _parameters, defaults);
|
| + } else {
|
| + _ensureReturn();
|
| + return new ir.FunctionDefinition(
|
| + element, state.returnContinuation, _parameters, _root,
|
| + state.localConstants, defaults);
|
| }
|
| }
|
|
|
|
|