| Index: compiler/java/com/google/dart/compiler/resolver/Elements.java
|
| diff --git a/compiler/java/com/google/dart/compiler/resolver/Elements.java b/compiler/java/com/google/dart/compiler/resolver/Elements.java
|
| index b95d48cd61da7120003192662e85f909a7290c82..9bd1f2b1be94896153e86f24b814569010c91144 100644
|
| --- a/compiler/java/com/google/dart/compiler/resolver/Elements.java
|
| +++ b/compiler/java/com/google/dart/compiler/resolver/Elements.java
|
| @@ -893,4 +893,34 @@ static FieldElementImplementation fieldFromNode(DartField node,
|
| addAllMembers(visited, allMembers, intf.getElement());
|
| }
|
| }
|
| +
|
| + public static boolean isAbstractElement(Element element) {
|
| + if (element == null) {
|
| + return false;
|
| + }
|
| + if (element.getModifiers().isAbstract()) {
|
| + return true;
|
| + }
|
| + if (element.getModifiers().isExternal()) {
|
| + return false;
|
| + }
|
| + if (element.getModifiers().isStatic()) {
|
| + return false;
|
| + }
|
| + if (ElementKind.of(element) == ElementKind.METHOD) {
|
| + MethodElement method = (MethodElement) element;
|
| + return !method.hasBody();
|
| + }
|
| + if (ElementKind.of(element) == ElementKind.FIELD) {
|
| + FieldElement field = (FieldElement) element;
|
| + if (isAbstractElement(field.getGetter())) {
|
| + return true;
|
| + }
|
| + if (isAbstractElement(field.getSetter())) {
|
| + return true;
|
| + }
|
| + return false;
|
| + }
|
| + return false;
|
| + }
|
| }
|
|
|