diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClassForClassLike.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClassForClassLike.kt index 72decb67459..818dfe677fc 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClassForClassLike.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClassForClassLike.kt @@ -59,7 +59,7 @@ abstract class SymbolLightClassForClassLike prote override val kotlinOrigin: KtClassOrObject? get() = classOrObjectDeclaration - protected fun withClassOrObjectSymbol(action: KtAnalysisSession.(SType) -> T): T = + internal inline fun withClassOrObjectSymbol(crossinline action: KtAnalysisSession.(SType) -> T): T = classOrObjectSymbolPointer.withSymbol(ktModule, action) override val isTopLevel: Boolean by lazyPub { diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/SymbolLightFieldForEnumEntry.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/SymbolLightFieldForEnumEntry.kt index 97f8313bafa..46c514fa3d5 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/SymbolLightFieldForEnumEntry.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/SymbolLightFieldForEnumEntry.kt @@ -26,9 +26,10 @@ internal class SymbolLightFieldForEnumEntry( private val enumEntryName: String, containingClass: SymbolLightClassForClassOrObject, ) : SymbolLightField(containingClass = containingClass, lightMemberOrigin = null), PsiEnumConstant { - internal fun withEnumEntrySymbol(action: KtAnalysisSession.(KtEnumEntrySymbol) -> T): T = analyzeForLightClasses(ktModule) { - action(enumEntry.getEnumEntrySymbol()) - } + internal inline fun withEnumEntrySymbol(crossinline action: KtAnalysisSession.(KtEnumEntrySymbol) -> T): T = + analyzeForLightClasses(ktModule) { + action(enumEntry.getEnumEntrySymbol()) + } private val _modifierList by lazyPub { SymbolLightMemberModifierList( diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/SymbolLightFieldForObject.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/SymbolLightFieldForObject.kt index a226f2264bb..5752aa26641 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/SymbolLightFieldForObject.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/SymbolLightFieldForObject.kt @@ -44,7 +44,7 @@ internal class SymbolLightFieldForObject private constructor( objectSymbolPointer = with(ktAnalysisSession) { objectSymbol.createPointer() }, ) - private fun withObjectDeclarationSymbol(action: KtAnalysisSession.(KtNamedClassOrObjectSymbol) -> T): T = + private inline fun withObjectDeclarationSymbol(crossinline action: KtAnalysisSession.(KtNamedClassOrObjectSymbol) -> T): T = objectSymbolPointer.withSymbol(ktModule, action) override fun getName(): String = name diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/SymbolLightFieldForProperty.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/SymbolLightFieldForProperty.kt index d9dc03f506c..f8873cbdfce 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/SymbolLightFieldForProperty.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/SymbolLightFieldForProperty.kt @@ -58,7 +58,7 @@ internal class SymbolLightFieldForProperty private constructor( kotlinOrigin = propertySymbol.sourcePsiSafe(), ) - private fun withPropertySymbol(action: context (KtAnalysisSession) (KtPropertySymbol) -> T): T { + private inline fun withPropertySymbol(crossinline action: context (KtAnalysisSession) (KtPropertySymbol) -> T): T { return propertySymbolPointer.withSymbol(ktModule, action) } diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightMethod.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightMethod.kt index 58f6e6f8464..7ce122147b4 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightMethod.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightMethod.kt @@ -61,7 +61,8 @@ internal abstract class SymbolLightMethod private kotlinOrigin = functionSymbol.sourcePsiSafe() ?: lightMemberOrigin?.originalElement ?: functionSymbol.psiSafe(), ) - protected fun withFunctionSymbol(action: KtAnalysisSession.(FType) -> T): T = functionSymbolPointer.withSymbol(ktModule, action) + protected inline fun withFunctionSymbol(crossinline action: KtAnalysisSession.(FType) -> T): T = + functionSymbolPointer.withSymbol(ktModule, action) private val _isVarArgs: Boolean by lazyPub { functionDeclaration?.valueParameters?.any { it.isVarArg } ?: withFunctionSymbol { functionSymbol ->