Minor, polish JavaClass
- move utility methods out from JavaClass to the usage site - JavaClassifier extends JavaNamedElement
This commit is contained in:
+18
-3
@@ -268,8 +268,8 @@ public final class JavaClassResolver {
|
||||
@NotNull PostponedTasks taskList,
|
||||
@NotNull ClassOrNamespaceDescriptor containingDeclaration
|
||||
) {
|
||||
ClassDescriptorFromJvmBytecode classDescriptor = new ClassDescriptorFromJvmBytecode(containingDeclaration, javaClass.getKind(),
|
||||
isInnerClass(javaClass));
|
||||
ClassDescriptorFromJvmBytecode classDescriptor =
|
||||
new ClassDescriptorFromJvmBytecode(containingDeclaration, determineClassKind(javaClass), isInnerClass(javaClass));
|
||||
|
||||
cache(javaClassToKotlinFqName(fqName), classDescriptor);
|
||||
|
||||
@@ -281,7 +281,7 @@ public final class JavaClassResolver {
|
||||
List<JetType> supertypes = new ArrayList<JetType>();
|
||||
classDescriptor.setSupertypes(supertypes);
|
||||
classDescriptor.setVisibility(javaClass.getVisibility());
|
||||
classDescriptor.setModality(javaClass.getModality());
|
||||
classDescriptor.setModality(determineClassModality(javaClass));
|
||||
classDescriptor.createTypeConstructor();
|
||||
|
||||
JavaClassNonStaticMembersScope scope = new JavaClassNonStaticMembersScope(classDescriptor, javaClass, false, memberResolver);
|
||||
@@ -313,6 +313,21 @@ public final class JavaClassResolver {
|
||||
return classDescriptor;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static ClassKind determineClassKind(@NotNull JavaClass klass) {
|
||||
if (klass.isInterface()) {
|
||||
return klass.isAnnotationType() ? ClassKind.ANNOTATION_CLASS : ClassKind.TRAIT;
|
||||
}
|
||||
return klass.isEnum() ? ClassKind.ENUM_CLASS : ClassKind.CLASS;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static Modality determineClassModality(@NotNull JavaClass klass) {
|
||||
return klass.isAnnotationType()
|
||||
? Modality.FINAL
|
||||
: Modality.convertFromFlags(klass.isAbstract() || klass.isInterface(), !klass.isFinal());
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static FqNameUnsafe getFqNameForClassObject(@NotNull JavaClass javaClass) {
|
||||
FqName fqName = javaClass.getFqName();
|
||||
|
||||
+1
-2
@@ -18,7 +18,6 @@ package org.jetbrains.jet.lang.resolve.java.resolver;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.ClassKind;
|
||||
import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor;
|
||||
import org.jetbrains.jet.lang.resolve.java.JvmAbi;
|
||||
import org.jetbrains.jet.lang.resolve.java.TypeUsage;
|
||||
@@ -70,7 +69,7 @@ public final class JavaSupertypeResolver {
|
||||
|
||||
@NotNull
|
||||
private JetType getDefaultSupertype(@NotNull JavaClass javaClass) {
|
||||
if (OBJECT_FQ_NAME.equals(javaClass.getFqName()) || javaClass.getKind() == ClassKind.ANNOTATION_CLASS) {
|
||||
if (OBJECT_FQ_NAME.equals(javaClass.getFqName()) || javaClass.isAnnotationType()) {
|
||||
return KotlinBuiltIns.getInstance().getAnyType();
|
||||
}
|
||||
else {
|
||||
|
||||
+1
-10
@@ -18,14 +18,11 @@ package org.jetbrains.jet.lang.resolve.java.structure;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.lang.descriptors.ClassKind;
|
||||
import org.jetbrains.jet.lang.descriptors.Modality;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
public interface JavaClass
|
||||
extends JavaClassifier, JavaNamedElement, JavaTypeParameterListOwner, JavaModifierListOwner, JavaAnnotationOwner {
|
||||
public interface JavaClass extends JavaClassifier, JavaTypeParameterListOwner, JavaModifierListOwner, JavaAnnotationOwner {
|
||||
@NotNull
|
||||
Collection<JavaClass> getInnerClasses();
|
||||
|
||||
@@ -38,15 +35,9 @@ public interface JavaClass
|
||||
|
||||
boolean isEnum();
|
||||
|
||||
@NotNull
|
||||
ClassKind getKind();
|
||||
|
||||
@Nullable
|
||||
JavaClass getOuterClass();
|
||||
|
||||
@NotNull
|
||||
Modality getModality();
|
||||
|
||||
@NotNull
|
||||
Collection<JavaClassifierType> getSupertypes();
|
||||
|
||||
|
||||
+1
-1
@@ -16,5 +16,5 @@
|
||||
|
||||
package org.jetbrains.jet.lang.resolve.java.structure;
|
||||
|
||||
public interface JavaClassifier extends JavaElement {
|
||||
public interface JavaClassifier extends JavaNamedElement {
|
||||
}
|
||||
|
||||
+1
-1
@@ -21,7 +21,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
public interface JavaTypeParameter extends JavaClassifier, JavaNamedElement {
|
||||
public interface JavaTypeParameter extends JavaClassifier {
|
||||
int getIndex();
|
||||
|
||||
@NotNull
|
||||
|
||||
-17
@@ -23,8 +23,6 @@ import com.intellij.psi.PsiTypeParameter;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.lang.descriptors.ClassKind;
|
||||
import org.jetbrains.jet.lang.descriptors.Modality;
|
||||
import org.jetbrains.jet.lang.descriptors.Visibility;
|
||||
import org.jetbrains.jet.lang.resolve.java.jetAsJava.JetJavaMirrorMarker;
|
||||
import org.jetbrains.jet.lang.resolve.java.structure.*;
|
||||
@@ -76,15 +74,6 @@ public class JavaClassImpl extends JavaClassifierImpl implements JavaClass, Java
|
||||
return getPsi().isEnum();
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public ClassKind getKind() {
|
||||
if (isInterface()) {
|
||||
return isAnnotationType() ? ClassKind.ANNOTATION_CLASS : ClassKind.TRAIT;
|
||||
}
|
||||
return isEnum() ? ClassKind.ENUM_CLASS : ClassKind.CLASS;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public JavaClass getOuterClass() {
|
||||
@@ -92,12 +81,6 @@ public class JavaClassImpl extends JavaClassifierImpl implements JavaClass, Java
|
||||
return outer == null ? null : new JavaClassImpl(outer);
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public Modality getModality() {
|
||||
return isAnnotationType() ? Modality.FINAL : Modality.convertFromFlags(isAbstract() || isInterface(), !isFinal());
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public Collection<JavaTypeParameter> getTypeParameters() {
|
||||
|
||||
Reference in New Issue
Block a user