FIR LC: minor reordering of utils that add members
This commit is contained in:
committed by
Ilya Kirillov
parent
1ae7c2af21
commit
8c97f0c3a1
+42
-42
@@ -6,14 +6,14 @@
|
||||
package org.jetbrains.kotlin.light.classes.symbol
|
||||
|
||||
import com.intellij.psi.*
|
||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightField
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.analysis.api.isValid
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.*
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSymbolKind
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSymbolWithVisibility
|
||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightField
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.light.classes.symbol.classes.*
|
||||
import org.jetbrains.kotlin.load.java.JvmAbi
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.applyIf
|
||||
@@ -109,6 +109,44 @@ internal class FirLightClassForSymbol(
|
||||
result
|
||||
}
|
||||
|
||||
private fun addMethodsFromCompanionIfNeeded(result: MutableList<KtLightMethod>) {
|
||||
classOrObjectSymbol.companionObject?.run {
|
||||
analyzeWithSymbolAsContext(this) {
|
||||
val methods = getDeclaredMemberScope().getCallableSymbols()
|
||||
.filterIsInstance<KtFunctionSymbol>()
|
||||
.filter { it.hasJvmStaticAnnotation() }
|
||||
createMethods(methods, result)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private val _ownFields: List<KtLightField> by lazyPub {
|
||||
|
||||
val result = mutableListOf<KtLightField>()
|
||||
|
||||
addCompanionObjectFieldIfNeeded(result)
|
||||
addInstanceFieldIfNeeded(result)
|
||||
|
||||
addFieldsFromCompanionIfNeeded(result)
|
||||
addPropertyBackingFields(result)
|
||||
|
||||
result
|
||||
}
|
||||
|
||||
private fun addInstanceFieldIfNeeded(result: MutableList<KtLightField>) {
|
||||
val isNamedObject = classOrObjectSymbol.classKind == KtClassKind.OBJECT
|
||||
if (isNamedObject && classOrObjectSymbol.symbolKind != KtSymbolKind.LOCAL) {
|
||||
result.add(
|
||||
FirLightFieldForObjectSymbol(
|
||||
objectSymbol = classOrObjectSymbol,
|
||||
containingClass = this@FirLightClassForSymbol,
|
||||
name = JvmAbi.INSTANCE_FIELD,
|
||||
lightMemberOrigin = null
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private fun addFieldsFromCompanionIfNeeded(result: MutableList<KtLightField>) {
|
||||
classOrObjectSymbol.companionObject?.run {
|
||||
analyzeWithSymbolAsContext(this) {
|
||||
@@ -130,31 +168,6 @@ internal class FirLightClassForSymbol(
|
||||
}
|
||||
}
|
||||
|
||||
private fun addMethodsFromCompanionIfNeeded(result: MutableList<KtLightMethod>) {
|
||||
classOrObjectSymbol.companionObject?.run {
|
||||
analyzeWithSymbolAsContext(this) {
|
||||
val methods = getDeclaredMemberScope().getCallableSymbols()
|
||||
.filterIsInstance<KtFunctionSymbol>()
|
||||
.filter { it.hasJvmStaticAnnotation() }
|
||||
createMethods(methods, result)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun addInstanceFieldIfNeeded(result: MutableList<KtLightField>) {
|
||||
val isNamedObject = classOrObjectSymbol.classKind == KtClassKind.OBJECT
|
||||
if (isNamedObject && classOrObjectSymbol.symbolKind != KtSymbolKind.LOCAL) {
|
||||
result.add(
|
||||
FirLightFieldForObjectSymbol(
|
||||
objectSymbol = classOrObjectSymbol,
|
||||
containingClass = this@FirLightClassForSymbol,
|
||||
name = JvmAbi.INSTANCE_FIELD,
|
||||
lightMemberOrigin = null
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private fun addPropertyBackingFields(result: MutableList<KtLightField>) {
|
||||
analyzeWithSymbolAsContext(classOrObjectSymbol) {
|
||||
val propertySymbols = classOrObjectSymbol.getDeclaredMemberScope().getCallableSymbols()
|
||||
@@ -194,19 +207,6 @@ internal class FirLightClassForSymbol(
|
||||
}
|
||||
}
|
||||
|
||||
private val _ownFields: List<KtLightField> by lazyPub {
|
||||
|
||||
val result = mutableListOf<KtLightField>()
|
||||
|
||||
addCompanionObjectFieldIfNeeded(result)
|
||||
addInstanceFieldIfNeeded(result)
|
||||
|
||||
addFieldsFromCompanionIfNeeded(result)
|
||||
addPropertyBackingFields(result)
|
||||
|
||||
result
|
||||
}
|
||||
|
||||
override fun hashCode(): Int = classOrObjectSymbol.hashCode()
|
||||
|
||||
override fun equals(other: Any?): Boolean =
|
||||
|
||||
Reference in New Issue
Block a user