| Index: compiler/java/com/google/dart/compiler/resolver/Resolver.java
|
| diff --git a/compiler/java/com/google/dart/compiler/resolver/Resolver.java b/compiler/java/com/google/dart/compiler/resolver/Resolver.java
|
| index f577e91bb62dc51d0a66e9a17bc9094bebb73ae0..7746fe2fd1f14d44f2bbb1c7e48721fe35af90ad 100644
|
| --- a/compiler/java/com/google/dart/compiler/resolver/Resolver.java
|
| +++ b/compiler/java/com/google/dart/compiler/resolver/Resolver.java
|
| @@ -656,13 +656,14 @@ public class Resolver {
|
| isAbstractClass = cl.getModifiers().isAbstract();
|
| }
|
|
|
| - if (body == null
|
| - && !Elements.isNonFactoryConstructor(member)
|
| - && !member.getModifiers().isAbstract()
|
| - && !member.getModifiers().isExternal()
|
| - && node.getRedirectedTypeName() == null
|
| - && !(isInterface || isAbstractClass)) {
|
| - onError(functionNode, ResolverErrorCode.METHOD_MUST_HAVE_BODY);
|
| + if (body == null) {
|
| + if (member.getModifiers().isStatic() && !member.getModifiers().isExternal()) {
|
| + onError(functionNode, ResolverErrorCode.STATIC_METHOD_MUST_HAVE_BODY);
|
| + } else if (!Elements.isNonFactoryConstructor(member) && !member.getModifiers().isAbstract()
|
| + && !member.getModifiers().isExternal() && node.getRedirectedTypeName() == null
|
| + && !(isInterface || isAbstractClass)) {
|
| + onError(functionNode, ResolverErrorCode.METHOD_MUST_HAVE_BODY);
|
| + }
|
| }
|
| resolve(functionNode.getBody());
|
|
|
|
|