Minor, JavaClass#getOriginKind -> isKotlinLightClass

This commit is contained in:
Alexander Udalov
2016-03-17 18:36:01 +03:00
parent 0ba0e2b10d
commit 0a54464420
6 changed files with 12 additions and 30 deletions
@@ -24,6 +24,7 @@ import com.intellij.psi.search.DelegatingGlobalSearchScope;
import com.intellij.psi.search.GlobalSearchScope;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.asJava.KtJavaMirrorMarker;
import org.jetbrains.kotlin.idea.KotlinFileType;
import org.jetbrains.kotlin.load.java.structure.JavaClass;
import org.jetbrains.kotlin.load.java.structure.JavaPackage;
@@ -96,7 +97,7 @@ public class JavaClassFinderImpl implements JavaClassFinder {
throw new IllegalStateException("Requested " + fqName + ", got " + javaClass.getFqName());
}
if (javaClass.getOriginKind() == JavaClass.OriginKind.KOTLIN_LIGHT_CLASS) {
if (psiClass instanceof KtJavaMirrorMarker) {
throw new IllegalStateException("Kotlin light classes should not be found by JavaPsiFacade, resolving: " + fqName);
}
@@ -152,18 +152,8 @@ public class JavaClassImpl extends JavaClassifierImpl<PsiClass> implements JavaC
}
@Override
@NotNull
public OriginKind getOriginKind() {
PsiClass psiClass = getPsi();
if (psiClass instanceof KtJavaMirrorMarker) {
return OriginKind.KOTLIN_LIGHT_CLASS;
}
else if (psiClass instanceof PsiCompiledElement) {
return OriginKind.COMPILED;
}
else {
return OriginKind.SOURCE;
}
public boolean isKotlinLightClass() {
return getPsi() instanceof KtJavaMirrorMarker;
}
@Nullable
@@ -59,7 +59,7 @@ class LazyJavaPackageFragmentProvider(
private inner class FragmentClassResolver : LazyJavaClassResolver {
override fun resolveClass(javaClass: JavaClass): ClassDescriptor? {
val fqName = javaClass.fqName
if (fqName != null && javaClass.originKind == JavaClass.OriginKind.KOTLIN_LIGHT_CLASS) {
if (fqName != null && javaClass.isKotlinLightClass) {
return c.components.javaResolverCache.getClassResolvedFromSource(fqName)
}
@@ -27,7 +27,6 @@ import org.jetbrains.kotlin.load.java.structure.JavaClass
import org.jetbrains.kotlin.load.java.structure.JavaPackage
import org.jetbrains.kotlin.load.kotlin.header.KotlinClassHeader
import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.name.SpecialNames
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
@@ -159,9 +158,9 @@ class LazyJavaPackageScope(
// neither objects nor enum members can be in java package
if (!kindFilter.acceptsKinds(DescriptorKindFilter.NON_SINGLETON_CLASSIFIERS_MASK)) return listOf()
return jPackage.getClasses(nameFilter).asSequence()
.filter { c -> c.originKind != JavaClass.OriginKind.KOTLIN_LIGHT_CLASS }
.map { c -> c.name }.toList()
return jPackage.getClasses(nameFilter).mapNotNull { klass ->
if (klass.isKotlinLightClass) null else klass.name
}
}
override fun getFunctionNames(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean): Collection<Name> {
@@ -35,6 +35,8 @@ public interface JavaClass extends JavaClassifier, JavaTypeParameterListOwner, J
boolean isEnum();
boolean isKotlinLightClass();
@Nullable
JavaClass getOuterClass();
@@ -49,13 +51,4 @@ public interface JavaClass extends JavaClassifier, JavaTypeParameterListOwner, J
@NotNull
Collection<JavaConstructor> getConstructors();
@NotNull
OriginKind getOriginKind();
enum OriginKind {
COMPILED,
SOURCE,
KOTLIN_LIGHT_CLASS
}
}
@@ -81,10 +81,9 @@ class ReflectJavaClass(
.map(::ReflectJavaConstructor)
.toList()
// TODO: drop OriginKind
override fun getOriginKind() = JavaClass.OriginKind.COMPILED
override fun isKotlinLightClass() = false
override fun getName(): Name = Name.identifier(klass.simpleName)
override fun getName() = Name.identifier(klass.simpleName)
override fun getTypeParameters() = klass.typeParameters.map { ReflectJavaTypeParameter(it) }