Minor, JavaClass#getOriginKind -> isKotlinLightClass
This commit is contained in:
@@ -24,6 +24,7 @@ import com.intellij.psi.search.DelegatingGlobalSearchScope;
|
|||||||
import com.intellij.psi.search.GlobalSearchScope;
|
import com.intellij.psi.search.GlobalSearchScope;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
import org.jetbrains.kotlin.asJava.KtJavaMirrorMarker;
|
||||||
import org.jetbrains.kotlin.idea.KotlinFileType;
|
import org.jetbrains.kotlin.idea.KotlinFileType;
|
||||||
import org.jetbrains.kotlin.load.java.structure.JavaClass;
|
import org.jetbrains.kotlin.load.java.structure.JavaClass;
|
||||||
import org.jetbrains.kotlin.load.java.structure.JavaPackage;
|
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());
|
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);
|
throw new IllegalStateException("Kotlin light classes should not be found by JavaPsiFacade, resolving: " + fqName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-12
@@ -152,18 +152,8 @@ public class JavaClassImpl extends JavaClassifierImpl<PsiClass> implements JavaC
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@NotNull
|
public boolean isKotlinLightClass() {
|
||||||
public OriginKind getOriginKind() {
|
return getPsi() instanceof KtJavaMirrorMarker;
|
||||||
PsiClass psiClass = getPsi();
|
|
||||||
if (psiClass instanceof KtJavaMirrorMarker) {
|
|
||||||
return OriginKind.KOTLIN_LIGHT_CLASS;
|
|
||||||
}
|
|
||||||
else if (psiClass instanceof PsiCompiledElement) {
|
|
||||||
return OriginKind.COMPILED;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return OriginKind.SOURCE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
|||||||
+1
-1
@@ -59,7 +59,7 @@ class LazyJavaPackageFragmentProvider(
|
|||||||
private inner class FragmentClassResolver : LazyJavaClassResolver {
|
private inner class FragmentClassResolver : LazyJavaClassResolver {
|
||||||
override fun resolveClass(javaClass: JavaClass): ClassDescriptor? {
|
override fun resolveClass(javaClass: JavaClass): ClassDescriptor? {
|
||||||
val fqName = javaClass.fqName
|
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)
|
return c.components.javaResolverCache.getClassResolvedFromSource(fqName)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-4
@@ -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.java.structure.JavaPackage
|
||||||
import org.jetbrains.kotlin.load.kotlin.header.KotlinClassHeader
|
import org.jetbrains.kotlin.load.kotlin.header.KotlinClassHeader
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
import org.jetbrains.kotlin.name.FqName
|
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.name.SpecialNames
|
import org.jetbrains.kotlin.name.SpecialNames
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
||||||
@@ -159,9 +158,9 @@ class LazyJavaPackageScope(
|
|||||||
// neither objects nor enum members can be in java package
|
// neither objects nor enum members can be in java package
|
||||||
if (!kindFilter.acceptsKinds(DescriptorKindFilter.NON_SINGLETON_CLASSIFIERS_MASK)) return listOf()
|
if (!kindFilter.acceptsKinds(DescriptorKindFilter.NON_SINGLETON_CLASSIFIERS_MASK)) return listOf()
|
||||||
|
|
||||||
return jPackage.getClasses(nameFilter).asSequence()
|
return jPackage.getClasses(nameFilter).mapNotNull { klass ->
|
||||||
.filter { c -> c.originKind != JavaClass.OriginKind.KOTLIN_LIGHT_CLASS }
|
if (klass.isKotlinLightClass) null else klass.name
|
||||||
.map { c -> c.name }.toList()
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getFunctionNames(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean): Collection<Name> {
|
override fun getFunctionNames(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean): Collection<Name> {
|
||||||
|
|||||||
+2
-9
@@ -35,6 +35,8 @@ public interface JavaClass extends JavaClassifier, JavaTypeParameterListOwner, J
|
|||||||
|
|
||||||
boolean isEnum();
|
boolean isEnum();
|
||||||
|
|
||||||
|
boolean isKotlinLightClass();
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
JavaClass getOuterClass();
|
JavaClass getOuterClass();
|
||||||
|
|
||||||
@@ -49,13 +51,4 @@ public interface JavaClass extends JavaClassifier, JavaTypeParameterListOwner, J
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
Collection<JavaConstructor> getConstructors();
|
Collection<JavaConstructor> getConstructors();
|
||||||
|
|
||||||
@NotNull
|
|
||||||
OriginKind getOriginKind();
|
|
||||||
|
|
||||||
enum OriginKind {
|
|
||||||
COMPILED,
|
|
||||||
SOURCE,
|
|
||||||
KOTLIN_LIGHT_CLASS
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-3
@@ -81,10 +81,9 @@ class ReflectJavaClass(
|
|||||||
.map(::ReflectJavaConstructor)
|
.map(::ReflectJavaConstructor)
|
||||||
.toList()
|
.toList()
|
||||||
|
|
||||||
// TODO: drop OriginKind
|
override fun isKotlinLightClass() = false
|
||||||
override fun getOriginKind() = JavaClass.OriginKind.COMPILED
|
|
||||||
|
|
||||||
override fun getName(): Name = Name.identifier(klass.simpleName)
|
override fun getName() = Name.identifier(klass.simpleName)
|
||||||
|
|
||||||
override fun getTypeParameters() = klass.typeParameters.map { ReflectJavaTypeParameter(it) }
|
override fun getTypeParameters() = klass.typeParameters.map { ReflectJavaTypeParameter(it) }
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user