[SLC] SymbolLightClassForNamedClassLike: cleanup addMethodsFromCompanionIfNeeded function
^KT-54051
This commit is contained in:
committed by
Space Team
parent
ef9412e0aa
commit
c9d1e2b0a2
+3
-2
@@ -157,7 +157,7 @@ internal open class SymbolLightClassForClassOrObject : SymbolLightClassForNamedC
|
||||
createConstructors(declaredMemberScope.getConstructors(), result)
|
||||
|
||||
|
||||
addMethodsFromCompanionIfNeeded(result)
|
||||
addMethodsFromCompanionIfNeeded(result, classOrObjectSymbol)
|
||||
|
||||
addMethodsFromDataClass(result, classOrObjectSymbol)
|
||||
addDelegatesToInterfaceMethods(result, classOrObjectSymbol)
|
||||
@@ -346,5 +346,6 @@ internal open class SymbolLightClassForClassOrObject : SymbolLightClassForNamedC
|
||||
|
||||
override fun isAnnotationType(): Boolean = false
|
||||
|
||||
override fun copy(): SymbolLightClassForClassOrObject = SymbolLightClassForClassOrObject(classOrObjectDeclaration, classOrObjectSymbolPointer, ktModule, manager)
|
||||
override fun copy(): SymbolLightClassForClassOrObject =
|
||||
SymbolLightClassForClassOrObject(classOrObjectDeclaration, classOrObjectSymbolPointer, ktModule, manager)
|
||||
}
|
||||
|
||||
+1
-1
@@ -59,7 +59,7 @@ internal open class SymbolLightClassForInterface : SymbolLightClassForInterfaceO
|
||||
.filterNot { it is KtFunctionSymbol && it.visibility.isPrivateOrPrivateToThis() }
|
||||
|
||||
createMethods(visibleDeclarations, result)
|
||||
addMethodsFromCompanionIfNeeded(result)
|
||||
addMethodsFromCompanionIfNeeded(result, classOrObjectSymbol)
|
||||
|
||||
result
|
||||
}
|
||||
|
||||
+14
-10
@@ -47,26 +47,30 @@ abstract class SymbolLightClassForNamedClassLike : SymbolLightClassForClassLike<
|
||||
manager = manager
|
||||
)
|
||||
|
||||
context(KtAnalysisSession)
|
||||
protected fun addMethodsFromCompanionIfNeeded(
|
||||
result: MutableList<KtLightMethod>,
|
||||
): Unit = withClassOrObjectSymbol { classOrObjectSymbol ->
|
||||
classOrObjectSymbol.companionObject?.run {
|
||||
val methods = getDeclaredMemberScope().getCallableSymbols()
|
||||
.filterIsInstance<KtFunctionSymbol>()
|
||||
.filter { it.hasJvmStaticAnnotation() }
|
||||
classOrObjectSymbol: KtNamedClassOrObjectSymbol,
|
||||
) {
|
||||
val companionObjectSymbol = classOrObjectSymbol.companionObject ?: return
|
||||
val methods = companionObjectSymbol.getDeclaredMemberScope()
|
||||
.getCallableSymbols()
|
||||
.filterIsInstance<KtFunctionSymbol>()
|
||||
.filter { it.hasJvmStaticAnnotation() }
|
||||
|
||||
createMethods(methods, result)
|
||||
createMethods(methods, result)
|
||||
|
||||
val properties = getDeclaredMemberScope().getCallableSymbols().filterIsInstance<KtPropertySymbol>()
|
||||
properties.forEach { property ->
|
||||
companionObjectSymbol.getDeclaredMemberScope()
|
||||
.getCallableSymbols()
|
||||
.filterIsInstance<KtPropertySymbol>()
|
||||
.forEach { property ->
|
||||
createPropertyAccessors(
|
||||
result,
|
||||
property,
|
||||
isTopLevel = false,
|
||||
onlyJvmStatic = true
|
||||
onlyJvmStatic = true,
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private val KtPropertySymbol.isConstOrJvmField: Boolean get() = isConst || hasJvmFieldAnnotation()
|
||||
|
||||
Reference in New Issue
Block a user