[SLC] add more 'inline' modifiers to symbol utils functions

^KT-54051
This commit is contained in:
Dmitrii Gridin
2022-11-29 12:10:57 +01:00
committed by Space Team
parent 3e73522d3b
commit 870fdf51d3
5 changed files with 9 additions and 7 deletions
@@ -59,7 +59,7 @@ abstract class SymbolLightClassForClassLike<SType : KtClassOrObjectSymbol> prote
override val kotlinOrigin: KtClassOrObject? get() = classOrObjectDeclaration
protected fun <T> withClassOrObjectSymbol(action: KtAnalysisSession.(SType) -> T): T =
internal inline fun <T> withClassOrObjectSymbol(crossinline action: KtAnalysisSession.(SType) -> T): T =
classOrObjectSymbolPointer.withSymbol(ktModule, action)
override val isTopLevel: Boolean by lazyPub {
@@ -26,9 +26,10 @@ internal class SymbolLightFieldForEnumEntry(
private val enumEntryName: String,
containingClass: SymbolLightClassForClassOrObject,
) : SymbolLightField(containingClass = containingClass, lightMemberOrigin = null), PsiEnumConstant {
internal fun <T> withEnumEntrySymbol(action: KtAnalysisSession.(KtEnumEntrySymbol) -> T): T = analyzeForLightClasses(ktModule) {
action(enumEntry.getEnumEntrySymbol())
}
internal inline fun <T> withEnumEntrySymbol(crossinline action: KtAnalysisSession.(KtEnumEntrySymbol) -> T): T =
analyzeForLightClasses(ktModule) {
action(enumEntry.getEnumEntrySymbol())
}
private val _modifierList by lazyPub {
SymbolLightMemberModifierList(
@@ -44,7 +44,7 @@ internal class SymbolLightFieldForObject private constructor(
objectSymbolPointer = with(ktAnalysisSession) { objectSymbol.createPointer() },
)
private fun <T> withObjectDeclarationSymbol(action: KtAnalysisSession.(KtNamedClassOrObjectSymbol) -> T): T =
private inline fun <T> withObjectDeclarationSymbol(crossinline action: KtAnalysisSession.(KtNamedClassOrObjectSymbol) -> T): T =
objectSymbolPointer.withSymbol(ktModule, action)
override fun getName(): String = name
@@ -58,7 +58,7 @@ internal class SymbolLightFieldForProperty private constructor(
kotlinOrigin = propertySymbol.sourcePsiSafe<KtCallableDeclaration>(),
)
private fun <T> withPropertySymbol(action: context (KtAnalysisSession) (KtPropertySymbol) -> T): T {
private inline fun <T> withPropertySymbol(crossinline action: context (KtAnalysisSession) (KtPropertySymbol) -> T): T {
return propertySymbolPointer.withSymbol(ktModule, action)
}
@@ -61,7 +61,8 @@ internal abstract class SymbolLightMethod<FType : KtFunctionLikeSymbol> private
kotlinOrigin = functionSymbol.sourcePsiSafe() ?: lightMemberOrigin?.originalElement ?: functionSymbol.psiSafe<KtDeclaration>(),
)
protected fun <T> withFunctionSymbol(action: KtAnalysisSession.(FType) -> T): T = functionSymbolPointer.withSymbol(ktModule, action)
protected inline fun <T> withFunctionSymbol(crossinline action: KtAnalysisSession.(FType) -> T): T =
functionSymbolPointer.withSymbol(ktModule, action)
private val _isVarArgs: Boolean by lazyPub {
functionDeclaration?.valueParameters?.any { it.isVarArg } ?: withFunctionSymbol { functionSymbol ->