| Index: pkg/front_end/lib/src/fasta/kernel/kernel_procedure_builder.dart
 | 
| diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_procedure_builder.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_procedure_builder.dart
 | 
| index 210e5a11886da11fda5cb602790742f26eeabbcf..0893ca26e3d1c8867e1a52ba21880bb69577b9db 100644
 | 
| --- a/pkg/front_end/lib/src/fasta/kernel/kernel_procedure_builder.dart
 | 
| +++ b/pkg/front_end/lib/src/fasta/kernel/kernel_procedure_builder.dart
 | 
| @@ -80,8 +80,14 @@ abstract class KernelFunctionBuilder
 | 
|              compilationUnit, charOffset);
 | 
|  
 | 
|    void set body(Statement newBody) {
 | 
| -    if (isAbstract && newBody != null) {
 | 
| -      return internalError("Attempting to set body on abstract method.");
 | 
| +    if (newBody != null) {
 | 
| +      if (isAbstract) {
 | 
| +        return internalError("Attempting to set body on abstract method.");
 | 
| +      }
 | 
| +      if (isExternal) {
 | 
| +        return library.addCompileTimeError(
 | 
| +            newBody.fileOffset, "An external method can't have a body.");
 | 
| +      }
 | 
|      }
 | 
|      actualBody = newBody;
 | 
|      if (function != null) {
 | 
| 
 |