Minor. Reformat KtLightClassForSourceDeclaration.kt
This commit is contained in:
+20
-22
@@ -38,7 +38,6 @@ import com.intellij.psi.util.CachedValuesManager
|
|||||||
import com.intellij.psi.util.PsiModificationTracker.OUT_OF_CODE_BLOCK_MODIFICATION_COUNT
|
import com.intellij.psi.util.PsiModificationTracker.OUT_OF_CODE_BLOCK_MODIFICATION_COUNT
|
||||||
import com.intellij.psi.util.PsiUtilCore
|
import com.intellij.psi.util.PsiUtilCore
|
||||||
import com.intellij.util.IncorrectOperationException
|
import com.intellij.util.IncorrectOperationException
|
||||||
import com.intellij.util.SystemProperties
|
|
||||||
import com.intellij.util.containers.ContainerUtil
|
import com.intellij.util.containers.ContainerUtil
|
||||||
import org.jetbrains.annotations.NonNls
|
import org.jetbrains.annotations.NonNls
|
||||||
import org.jetbrains.kotlin.asJava.ImpreciseResolveResult
|
import org.jetbrains.kotlin.asJava.ImpreciseResolveResult
|
||||||
@@ -71,8 +70,8 @@ import org.jetbrains.kotlin.resolve.DescriptorUtils
|
|||||||
import java.util.*
|
import java.util.*
|
||||||
import javax.swing.Icon
|
import javax.swing.Icon
|
||||||
|
|
||||||
abstract class KtLightClassForSourceDeclaration(protected val classOrObject: KtClassOrObject)
|
abstract class KtLightClassForSourceDeclaration(protected val classOrObject: KtClassOrObject) : KtLazyLightClass(classOrObject.manager),
|
||||||
: KtLazyLightClass(classOrObject.manager), StubBasedPsiElement<KotlinClassOrObjectStub<out KtClassOrObject>> {
|
StubBasedPsiElement<KotlinClassOrObjectStub<out KtClassOrObject>> {
|
||||||
private val lightIdentifier = KtLightIdentifier(this, classOrObject)
|
private val lightIdentifier = KtLightIdentifier(this, classOrObject)
|
||||||
|
|
||||||
private val _extendsList by lazyPub { createExtendsList() }
|
private val _extendsList by lazyPub { createExtendsList() }
|
||||||
@@ -118,7 +117,8 @@ abstract class KtLightClassForSourceDeclaration(protected val classOrObject: KtC
|
|||||||
processor: PsiScopeProcessor,
|
processor: PsiScopeProcessor,
|
||||||
state: ResolveState,
|
state: ResolveState,
|
||||||
lastParent: PsiElement?,
|
lastParent: PsiElement?,
|
||||||
place: PsiElement): Boolean {
|
place: PsiElement
|
||||||
|
): Boolean {
|
||||||
if (!super.processDeclarations(processor, state, lastParent, place)) return false
|
if (!super.processDeclarations(processor, state, lastParent, place)) return false
|
||||||
|
|
||||||
// We have to explicitly process package declarations if current file belongs to default package
|
// We have to explicitly process package declarations if current file belongs to default package
|
||||||
@@ -201,8 +201,7 @@ abstract class KtLightClassForSourceDeclaration(protected val classOrObject: KtC
|
|||||||
// Top-level private class has PACKAGE_LOCAL visibility in Java
|
// Top-level private class has PACKAGE_LOCAL visibility in Java
|
||||||
// Nested private class has PRIVATE visibility
|
// Nested private class has PRIVATE visibility
|
||||||
psiModifiers.add(if (classOrObject.isTopLevel()) PsiModifier.PACKAGE_LOCAL else PsiModifier.PRIVATE)
|
psiModifiers.add(if (classOrObject.isTopLevel()) PsiModifier.PACKAGE_LOCAL else PsiModifier.PRIVATE)
|
||||||
}
|
} else if (!psiModifiers.contains(PsiModifier.PROTECTED)) {
|
||||||
else if (!psiModifiers.contains(PsiModifier.PROTECTED)) {
|
|
||||||
psiModifiers.add(PsiModifier.PUBLIC)
|
psiModifiers.add(PsiModifier.PUBLIC)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -210,8 +209,7 @@ abstract class KtLightClassForSourceDeclaration(protected val classOrObject: KtC
|
|||||||
// FINAL
|
// FINAL
|
||||||
if (isAbstract() || isSealed()) {
|
if (isAbstract() || isSealed()) {
|
||||||
psiModifiers.add(PsiModifier.ABSTRACT)
|
psiModifiers.add(PsiModifier.ABSTRACT)
|
||||||
}
|
} else if (!(classOrObject.hasModifier(OPEN_KEYWORD) || (classOrObject is KtClass && classOrObject.isEnum()))) {
|
||||||
else if (!(classOrObject.hasModifier(OPEN_KEYWORD) || (classOrObject is KtClass && classOrObject.isEnum()))) {
|
|
||||||
psiModifiers.add(PsiModifier.FINAL)
|
psiModifiers.add(PsiModifier.FINAL)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -281,8 +279,7 @@ abstract class KtLightClassForSourceDeclaration(protected val classOrObject: KtC
|
|||||||
val qualifiedName: String? = if (baseClass is KtLightClassForSourceDeclaration) {
|
val qualifiedName: String? = if (baseClass is KtLightClassForSourceDeclaration) {
|
||||||
val baseDescriptor = baseClass.getDescriptor()
|
val baseDescriptor = baseClass.getDescriptor()
|
||||||
if (baseDescriptor != null) DescriptorUtils.getFqName(baseDescriptor).asString() else null
|
if (baseDescriptor != null) DescriptorUtils.getFqName(baseDescriptor).asString() else null
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
baseClass.qualifiedName
|
baseClass.qualifiedName
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -330,8 +327,8 @@ abstract class KtLightClassForSourceDeclaration(protected val classOrObject: KtC
|
|||||||
PUBLIC_KEYWORD to PsiModifier.PUBLIC,
|
PUBLIC_KEYWORD to PsiModifier.PUBLIC,
|
||||||
INTERNAL_KEYWORD to PsiModifier.PUBLIC,
|
INTERNAL_KEYWORD to PsiModifier.PUBLIC,
|
||||||
PROTECTED_KEYWORD to PsiModifier.PROTECTED,
|
PROTECTED_KEYWORD to PsiModifier.PROTECTED,
|
||||||
FINAL_KEYWORD to PsiModifier.FINAL)
|
FINAL_KEYWORD to PsiModifier.FINAL
|
||||||
|
)
|
||||||
|
|
||||||
fun create(classOrObject: KtClassOrObject): KtLightClassForSourceDeclaration? =
|
fun create(classOrObject: KtClassOrObject): KtLightClassForSourceDeclaration? =
|
||||||
CachedValuesManager.getCachedValue(classOrObject) {
|
CachedValuesManager.getCachedValue(classOrObject) {
|
||||||
@@ -365,8 +362,8 @@ abstract class KtLightClassForSourceDeclaration(protected val classOrObject: KtC
|
|||||||
return InvalidLightClassDataHolder
|
return InvalidLightClassDataHolder
|
||||||
}
|
}
|
||||||
|
|
||||||
return classOrObject.containingKtFile.script?.let { KtLightClassForScript.getLightClassCachedValue(it).value } ?:
|
return classOrObject.containingKtFile.script?.let { KtLightClassForScript.getLightClassCachedValue(it).value }
|
||||||
getLightClassCachedValue(classOrObject).value
|
?: getLightClassCachedValue(classOrObject).value
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getLightClassCachedValue(classOrObject: KtClassOrObject): CachedValue<LightClassDataHolder.ForClass> {
|
private fun getLightClassCachedValue(classOrObject: KtClassOrObject): CachedValue<LightClassDataHolder.ForClass> {
|
||||||
@@ -375,7 +372,8 @@ abstract class KtLightClassForSourceDeclaration(protected val classOrObject: KtC
|
|||||||
?: classOrObject.getUserData(JAVA_API_STUB)
|
?: classOrObject.getUserData(JAVA_API_STUB)
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
value = CachedValuesManager.getManager(classOrObject.project).createCachedValue(
|
value = CachedValuesManager.getManager(classOrObject.project).createCachedValue(
|
||||||
LightClassDataProviderForClassOrObject(classOrObject), false)
|
LightClassDataProviderForClassOrObject(classOrObject), false
|
||||||
|
)
|
||||||
value = classOrObject.putUserDataIfAbsent(JAVA_API_STUB, value)
|
value = classOrObject.putUserDataIfAbsent(JAVA_API_STUB, value)
|
||||||
}
|
}
|
||||||
return value
|
return value
|
||||||
@@ -429,8 +427,7 @@ abstract class KtLightClassForSourceDeclaration(protected val classOrObject: KtC
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun getSupertypeByPsi(): PsiImmediateClassType? {
|
private fun getSupertypeByPsi(): PsiImmediateClassType? {
|
||||||
return classOrObject.defaultJavaAncestorQualifiedName()?.let {
|
return classOrObject.defaultJavaAncestorQualifiedName()?.let { ancestorFqName ->
|
||||||
ancestorFqName ->
|
|
||||||
JavaPsiFacade.getInstance(project).findClass(ancestorFqName, resolveScope)?.let {
|
JavaPsiFacade.getInstance(project).findClass(ancestorFqName, resolveScope)?.let {
|
||||||
PsiImmediateClassType(it, createSubstitutor(it))
|
PsiImmediateClassType(it, createSubstitutor(it))
|
||||||
}
|
}
|
||||||
@@ -452,8 +449,8 @@ abstract class KtLightClassForSourceDeclaration(protected val classOrObject: KtC
|
|||||||
override val originKind: LightClassOriginKind
|
override val originKind: LightClassOriginKind
|
||||||
get() = LightClassOriginKind.SOURCE
|
get() = LightClassOriginKind.SOURCE
|
||||||
|
|
||||||
private class KtLightClassModifierList(containingClass: KtLightClassForSourceDeclaration)
|
private class KtLightClassModifierList(containingClass: KtLightClassForSourceDeclaration) :
|
||||||
: KtLightModifierList<KtLightClassForSourceDeclaration>(containingClass) {
|
KtLightModifierList<KtLightClassForSourceDeclaration>(containingClass) {
|
||||||
|
|
||||||
private val modifiers by lazyPub { containingClass.computeModifiers() }
|
private val modifiers by lazyPub { containingClass.computeModifiers() }
|
||||||
|
|
||||||
@@ -470,11 +467,12 @@ abstract class KtLightClassForSourceDeclaration(protected val classOrObject: KtC
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun KtLightClassForSourceDeclaration.isPossiblyAffectedByAllOpen() = !isAnnotationType && !isInterface && kotlinOrigin.annotationEntries.isNotEmpty()
|
fun KtLightClassForSourceDeclaration.isPossiblyAffectedByAllOpen() =
|
||||||
|
!isAnnotationType && !isInterface && kotlinOrigin.annotationEntries.isNotEmpty()
|
||||||
|
|
||||||
fun getOutermostClassOrObject(classOrObject: KtClassOrObject): KtClassOrObject {
|
fun getOutermostClassOrObject(classOrObject: KtClassOrObject): KtClassOrObject {
|
||||||
val outermostClass = KtPsiUtil.getOutermostClassOrObject(classOrObject) ?:
|
val outermostClass = KtPsiUtil.getOutermostClassOrObject(classOrObject)
|
||||||
throw IllegalStateException("Attempt to build a light class for a local class: " + classOrObject.text)
|
?: throw IllegalStateException("Attempt to build a light class for a local class: " + classOrObject.text)
|
||||||
|
|
||||||
return outermostClass
|
return outermostClass
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user