From 57b6db4f0fc012f83cf84d9f277834c8a707cf33 Mon Sep 17 00:00:00 2001 From: Dmitrii Gridin Date: Thu, 26 Jan 2023 20:58:29 +0100 Subject: [PATCH] [SLC] avoid constructor parameters capturing ^KT-56046 --- .../classes/symbol/classes/SymbolLightClassForFacade.kt | 2 +- .../classes/symbol/methods/SymbolLightAccessorMethod.kt | 6 +++--- .../classes/symbol/methods/SymbolLightConstructor.kt | 2 +- .../classes/symbol/methods/SymbolLightSimpleMethod.kt | 8 ++++++-- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClassForFacade.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClassForFacade.kt index 19765a56ad0..3e112a750a0 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClassForFacade.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClassForFacade.kt @@ -69,7 +69,7 @@ class SymbolLightClassForFacade( } else { LazyAnnotationsBox( annotationsProvider = SymbolAnnotationsProvider( - ktModule = ktModule, + ktModule = this.ktModule, annotatedSymbolPointer = firstFileInFacade.symbolPointerOfType(), annotationUseSiteTarget = AnnotationUseSiteTarget.FILE, acceptAnnotationsWithoutSite = true, diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightAccessorMethod.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightAccessorMethod.kt index c4b023e3940..98b97fef93a 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightAccessorMethod.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightAccessorMethod.kt @@ -93,10 +93,10 @@ internal class SymbolLightAccessorMethod private constructor( propertyAccessorSymbol().getJvmNameFromAnnotation(accessorSite) ?: run { val symbol = propertySymbol() val defaultName = symbol.name.identifier.let { - if (containingClass.isAnnotationType) it else it.abiName() + if (this@SymbolLightAccessorMethod.containingClass.isAnnotationType) it else it.abiName() } - symbol.computeJvmMethodName(defaultName, containingClass, accessorSite) + symbol.computeJvmMethodName(defaultName, this@SymbolLightAccessorMethod.containingClass, accessorSite) } } } @@ -196,7 +196,7 @@ internal class SymbolLightAccessorMethod private constructor( ), additionalAnnotationsProvider = NullabilityAnnotationsProvider { val nullabilityApplicable = isGetter && - !(isParameter && containingClass.isAnnotationType) && + !(isParameter && this.containingClass.isAnnotationType) && !modifierList.hasModifierProperty(PsiModifier.PRIVATE) if (nullabilityApplicable) { diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightConstructor.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightConstructor.kt index 50a01c4f5a9..66195d6146b 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightConstructor.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightConstructor.kt @@ -44,7 +44,7 @@ internal class SymbolLightConstructor( override fun getTypeParameters(): Array = PsiTypeParameter.EMPTY_ARRAY private val _modifierList: PsiModifierList by lazyPub { - val initialValue = if (containingClass is SymbolLightClassForEnumEntry) { + val initialValue = if (this.containingClass is SymbolLightClassForEnumEntry) { LazyModifiersBox.VISIBILITY_MODIFIERS_MAP.with(PsiModifier.PACKAGE_LOCAL) } else { emptyMap() diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightSimpleMethod.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightSimpleMethod.kt index c0e4a4fdc72..32de75ed4a6 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightSimpleMethod.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightSimpleMethod.kt @@ -47,7 +47,11 @@ internal class SymbolLightSimpleMethod( ) { private val _name: String by lazyPub { withFunctionSymbol { functionSymbol -> - functionSymbol.computeJvmMethodName(functionSymbol.name.asString(), containingClass, annotationUseSiteTarget = null) + functionSymbol.computeJvmMethodName( + functionSymbol.name.asString(), + this@SymbolLightSimpleMethod.containingClass, + annotationUseSiteTarget = null, + ) } } @@ -188,7 +192,7 @@ internal class SymbolLightSimpleMethod( this@SymbolLightSimpleMethod, allowErrorTypes = true, KtTypeMappingMode.RETURN_TYPE, - containingClass.isAnnotationType, + this@SymbolLightSimpleMethod.containingClass.isAnnotationType, ) } ?: nonExistentType() }