[LL FIR] LLFirResolveTargetWithDedicatedElement: implement common toStringForTarget

^KT-61296
This commit is contained in:
Dmitrii Gridin
2023-09-11 18:11:03 +02:00
committed by Space Team
parent 3432e8d1f9
commit fd25531268
4 changed files with 17 additions and 18 deletions
@@ -30,6 +30,4 @@ class LLFirClassWithAllCallablesResolveTarget(
}
}
}
override fun toStringForTarget(): String = target.name.asString()
}
@@ -26,6 +26,4 @@ class LLFirClassWithAllMembersResolveTarget(
inline fun forEachMember(action: (FirDeclaration) -> Unit) {
target.declarations.forEach(action)
}
override fun toStringForTarget(): String = target.name.asString()
}
}
@@ -7,6 +7,10 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets
import org.jetbrains.kotlin.fir.FirElementWithResolveState
import org.jetbrains.kotlin.fir.FirFileAnnotationsContainer
import org.jetbrains.kotlin.fir.declarations.FirAnonymousInitializer
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
import org.jetbrains.kotlin.fir.declarations.FirClassLikeDeclaration
import org.jetbrains.kotlin.fir.declarations.FirConstructor
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.FirFile
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
@@ -23,7 +27,17 @@ sealed class LLFirResolveTargetWithDedicatedElement<T : FirElementWithResolveSta
) : LLFirResolveTarget(
firFile = firFile,
path = pathWithScript(firFile, classPath, target),
)
) {
override fun toStringForTarget(): String = when (target) {
is FirConstructor -> "constructor"
is FirClassLikeDeclaration -> target.symbol.name.asString()
is FirCallableDeclaration -> target.symbol.name.asString()
is FirAnonymousInitializer -> ("<init-block>")
is FirFileAnnotationsContainer -> "<file annotations>"
is FirScript -> target.name.asString()
else -> "???"
}
}
private fun pathWithScript(firFile: FirFile, path: List<FirRegularClass>, target: FirElementWithResolveState): List<FirDeclaration> {
if (target is FirFile || target is FirFileAnnotationsContainer || target is FirScript) return path
@@ -6,7 +6,6 @@
package org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets
import org.jetbrains.kotlin.fir.FirElementWithResolveState
import org.jetbrains.kotlin.fir.FirFileAnnotationsContainer
import org.jetbrains.kotlin.fir.declarations.*
/**
@@ -20,14 +19,4 @@ class LLFirSingleResolveTarget(
override fun forEachTarget(action: (FirElementWithResolveState) -> Unit) {
action(target)
}
override fun toStringForTarget(): String = when (target) {
is FirConstructor -> "constructor"
is FirClassLikeDeclaration -> target.symbol.name.asString()
is FirCallableDeclaration -> target.symbol.name.asString()
is FirAnonymousInitializer -> ("<init-block>")
is FirFileAnnotationsContainer -> "<file annotations>"
is FirScript -> target.name.asString()
else -> "???"
}
}
}