Annotations are also interfaces

This commit is contained in:
Andrey Breslav
2013-01-15 19:01:24 +04:00
parent dad59b20ba
commit 20b6eae88c
2 changed files with 5 additions and 4 deletions
@@ -317,8 +317,7 @@ public class KotlinLightClassForExplicitDeclaration extends AbstractLightClass i
} }
private boolean isAbstract(@NotNull JetClassOrObject object) { private boolean isAbstract(@NotNull JetClassOrObject object) {
return object.hasModifier(ABSTRACT_KEYWORD) || return object.hasModifier(ABSTRACT_KEYWORD) || isInterface();
classOrObject instanceof JetClass && ((JetClass) classOrObject).isTrait();
} }
@Override @Override
@@ -357,7 +356,9 @@ public class KotlinLightClassForExplicitDeclaration extends AbstractLightClass i
@Override @Override
public boolean isInterface() { public boolean isInterface() {
return classOrObject instanceof JetClass && ((JetClass) classOrObject).isTrait(); if (!(classOrObject instanceof JetClass)) return false;
JetClass jetClass = (JetClass) classOrObject;
return jetClass.isTrait() || jetClass.isAnnotation();
} }
@Override @Override
@@ -71,7 +71,7 @@ public abstract class KotlinLightClassTest extends KotlinAsJavaTestBase {
} }
public void testAnnotation() { public void testAnnotation() {
checkModifiers("test.Annotation", PUBLIC, FINAL, ANNOTATION, INTERFACE); checkModifiers("test.Annotation", PUBLIC, ANNOTATION, ABSTRACT, INTERFACE);
} }
public void testEnum() { public void testEnum() {