KT-1973 Added class kind to JetClass annotations to distinguish object declarations and regular classes.

#KT-1973 in progress
This commit is contained in:
Evgeny Gerashchenko
2012-10-03 22:58:19 +04:00
parent 889a238fbc
commit 998095c55c
4 changed files with 13 additions and 1 deletions
@@ -57,6 +57,10 @@ public class JvmStdlibNames {
public static final int FLAG_METHOD_KIND_DELEGATION = 2 << 5;
public static final int FLAG_METHOD_KIND_SYNTHESIZED = 3 << 5;
public static final int FLAG_CLASS_KIND_MASK = 7 << 5;
public static final int FLAG_CLASS_KIND_DEFAULT = 0 << 5;
public static final int FLAG_CLASS_KIND_OBJECT = 1 << 5;
public static final JvmClassName JET_CONSTRUCTOR = JvmClassName.byFqNameWithoutInnerClasses("jet.runtime.typeinfo.JetConstructor");
/**
@@ -50,6 +50,10 @@ public class JetClassAnnotation extends PsiAnnotationWithFlags {
return signature;
}
public int kind() {
return flags() & JvmStdlibNames.FLAG_CLASS_KIND_MASK;
}
@NotNull
public static JetClassAnnotation get(PsiClass psiClass) {
final PsiAnnotation annotation = JavaDescriptorResolver.findAnnotation(psiClass, JvmStdlibNames.JET_CLASS.getFqName().getFqName());