@@ -51,6 +51,8 @@ import org.jetbrains.kotlin.analysis.api.impl.base.types.KaBaseStarTypeProjectio
51
51
import org.jetbrains.kotlin.analysis.api.impl.base.types.KaBaseTypeArgumentWithVariance
52
52
import org.jetbrains.kotlin.analysis.api.platform.lifetime.KotlinAlwaysAccessibleLifetimeToken
53
53
import org.jetbrains.kotlin.analysis.api.projectStructure.KaLibraryModule
54
+ import org.jetbrains.kotlin.analysis.api.projectStructure.KaLibrarySourceModule
55
+ import org.jetbrains.kotlin.analysis.api.projectStructure.KaSourceModule
54
56
import org.jetbrains.kotlin.analysis.api.symbols.*
55
57
import org.jetbrains.kotlin.analysis.api.symbols.markers.KaDeclarationContainerSymbol
56
58
import org.jetbrains.kotlin.analysis.api.types.*
@@ -988,3 +990,29 @@ internal fun KaCallableSymbol.explictJvmName(): String? {
988
990
it.classId == jvmNameClassId
989
991
}?.arguments?.single()?.expression?.toValue() as ? String
990
992
}
993
+
994
+ internal val KaDeclarationSymbol .internalSuffix: String
995
+ get() = analyze {
996
+ if (visibility != KaSymbolVisibility .INTERNAL )
997
+ return @analyze " "
998
+
999
+ // Skip top level functions and properties
1000
+ when (this @internalSuffix) {
1001
+ is KaPropertyAccessorSymbol -> {
1002
+ if (containingDeclaration?.containingDeclaration == null )
1003
+ return @analyze " "
1004
+ }
1005
+ is KaFunctionSymbol -> {
1006
+ if (containingDeclaration == null )
1007
+ return @analyze " "
1008
+ }
1009
+ else -> {}
1010
+ }
1011
+
1012
+ fun String.toSuffix (): String = " \$ $this "
1013
+ when (val module = containingModule) {
1014
+ is KaSourceModule -> module.name.toSuffix()
1015
+ is KaLibraryModule -> module.libraryName.toSuffix()
1016
+ else -> " "
1017
+ }
1018
+ }
0 commit comments