Minor. Reformat KtLightClassForSourceDeclaration.kt

This commit is contained in:
Denis Zharkov
2018-10-30 14:49:30 +03:00
parent 0bf3199c19
commit 03e937ddfa
@@ -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
} }