From e54d16e7e44cad48b641c3fe1dd1d86195e370aa Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Wed, 4 Nov 2020 18:22:26 +0300 Subject: [PATCH] FIR IDE: fix fir declaration leak in symbols --- .../frontend/api/fir/symbols/KtFirAnonymousFunctionSymbol.kt | 4 ++-- .../idea/frontend/api/fir/symbols/KtFirClassOrObjectSymbol.kt | 4 ++-- .../idea/frontend/api/fir/symbols/KtFirConstructorSymbol.kt | 2 +- .../api/fir/symbols/KtFirConstructorValueParameterSymbol.kt | 2 +- .../idea/frontend/api/fir/symbols/KtFirEnumEntrySymbol.kt | 2 +- .../idea/frontend/api/fir/symbols/KtFirFunctionSymbol.kt | 2 +- .../api/fir/symbols/KtFirFunctionValueParameterSymbol.kt | 2 +- .../idea/frontend/api/fir/symbols/KtFirJavaFieldSymbol.kt | 2 +- .../idea/frontend/api/fir/symbols/KtFirLocalVariableSymbol.kt | 2 +- .../frontend/api/fir/symbols/KtFirPropertyGetterSymbol.kt | 2 +- .../frontend/api/fir/symbols/KtFirPropertySetterSymbol.kt | 2 +- .../idea/frontend/api/fir/symbols/KtFirPropertySymbol.kt | 2 +- .../frontend/api/fir/symbols/KtFirSetterParameterSymbol.kt | 2 +- .../idea/frontend/api/fir/symbols/KtFirTypeAliasSymbol.kt | 2 +- 14 files changed, 16 insertions(+), 16 deletions(-) diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirAnonymousFunctionSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirAnonymousFunctionSymbol.kt index 630ff263d9e..12cf18b7d51 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirAnonymousFunctionSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirAnonymousFunctionSymbol.kt @@ -26,10 +26,10 @@ internal class KtFirAnonymousFunctionSymbol( private val builder: KtSymbolByFirBuilder ) : KtAnonymousFunctionSymbol(), KtFirSymbol { override val firRef = firRef(fir, resolveState) - override val psi: PsiElement? by firRef.withFirAndCache { it.findPsi(fir.session) } + override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.session) } override val type: KtType by firRef.withFirAndCache(FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE) { builder.buildKtType(it.returnTypeRef) } - override val valueParameters: List by firRef.withFirAndCache { + override val valueParameters: List by firRef.withFirAndCache { fir -> fir.valueParameters.map { valueParameter -> check(valueParameter is FirValueParameterImpl) builder.buildParameterSymbol(valueParameter) diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirClassOrObjectSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirClassOrObjectSymbol.kt index 260aaf1ee64..f3dc94d8ac8 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirClassOrObjectSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirClassOrObjectSymbol.kt @@ -34,7 +34,7 @@ internal class KtFirClassOrObjectSymbol( private val builder: KtSymbolByFirBuilder ) : KtClassOrObjectSymbol(), KtFirSymbol { override val firRef = firRef(fir, resolveState) - override val psi: PsiElement? by firRef.withFirAndCache { it.findPsi(fir.session) } + override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.session) } override val name: Name get() = firRef.withFir { it.symbol.classId.shortClassName } override val classIdIfNonLocal: ClassId? get() = firRef.withFir { fir -> @@ -64,7 +64,7 @@ internal class KtFirClassOrObjectSymbol( fir.getPrimaryConstructorIfAny()?.let { builder.buildConstructorSymbol(it) } } - override val typeParameters by firRef.withFirAndCache { + override val typeParameters by firRef.withFirAndCache { fir -> fir.typeParameters.map { typeParameter -> builder.buildTypeParameterSymbol(typeParameter.symbol.fir) } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirConstructorSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirConstructorSymbol.kt index 85d45402697..70b96dee051 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirConstructorSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirConstructorSymbol.kt @@ -37,7 +37,7 @@ internal class KtFirConstructorSymbol( private val builder: KtSymbolByFirBuilder ) : KtConstructorSymbol(), KtFirSymbol { override val firRef = firRef(fir, resolveState) - override val psi: PsiElement? by firRef.withFirAndCache { it.findPsi(fir.session) } + override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.session) } override val type: KtType by firRef.withFirAndCache(FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE) { builder.buildKtType(it.returnTypeRef) } override val valueParameters: List by firRef.withFirAndCache { fir -> diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirConstructorValueParameterSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirConstructorValueParameterSymbol.kt index adb1a91d205..181879eabfe 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirConstructorValueParameterSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirConstructorValueParameterSymbol.kt @@ -29,7 +29,7 @@ internal class KtFirConstructorValueParameterSymbol( private val builder: KtSymbolByFirBuilder ) : KtConstructorParameterSymbol(), KtFirSymbol { override val firRef = firRef(fir, resolveState) - override val psi: PsiElement? by firRef.withFirAndCache { it.findPsi(fir.session) } + override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.session) } override val name: Name get() = firRef.withFir { it.name } override val type: KtType by firRef.withFirAndCache(FirResolvePhase.TYPES) { builder.buildKtType(it.returnTypeRef) } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirEnumEntrySymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirEnumEntrySymbol.kt index 981efd4e959..c0ad5ffef65 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirEnumEntrySymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirEnumEntrySymbol.kt @@ -30,7 +30,7 @@ internal class KtFirEnumEntrySymbol( private val builder: KtSymbolByFirBuilder ) : KtEnumEntrySymbol(), KtFirSymbol { override val firRef = firRef(fir, resolveState) - override val psi: PsiElement? by firRef.withFirAndCache { it.findPsi(fir.session) } + override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.session) } override val name: Name get() = firRef.withFir { it.name } override val type: KtType by firRef.withFirAndCache(FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE) { fir -> builder.buildKtType(fir.returnTypeRef) } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirFunctionSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirFunctionSymbol.kt index eb8a8af7429..3988cb6c273 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirFunctionSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirFunctionSymbol.kt @@ -36,7 +36,7 @@ internal class KtFirFunctionSymbol( private val builder: KtSymbolByFirBuilder ) : KtFunctionSymbol(), KtFirSymbol { override val firRef = firRef(fir, resolveState) - override val psi: PsiElement? by firRef.withFirAndCache { it.findPsi(fir.session) } + override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.session) } override val name: Name get() = firRef.withFir { it.name } override val type: KtType by firRef.withFirAndCache(FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE) { fir -> builder.buildKtType(fir.returnTypeRef) } override val valueParameters: List by firRef.withFirAndCache { fir -> diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirFunctionValueParameterSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirFunctionValueParameterSymbol.kt index b85dbee8886..a2516c1f75c 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirFunctionValueParameterSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirFunctionValueParameterSymbol.kt @@ -28,7 +28,7 @@ internal class KtFirFunctionValueParameterSymbol( private val builder: KtSymbolByFirBuilder ) : KtFunctionParameterSymbol(), KtFirSymbol { override val firRef = firRef(fir, resolveState) - override val psi: PsiElement? by firRef.withFirAndCache { it.findPsi(fir.session) } + override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.session) } override val name: Name get() = firRef.withFir { it.name } override val isVararg: Boolean get() = firRef.withFir { it.isVararg } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirJavaFieldSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirJavaFieldSymbol.kt index bcf8db8941e..09eeb8e1d13 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirJavaFieldSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirJavaFieldSymbol.kt @@ -28,7 +28,7 @@ internal class KtFirJavaFieldSymbol( private val builder: KtSymbolByFirBuilder ) : KtJavaFieldSymbol(), KtFirSymbol { override val firRef = firRef(fir, resolveState) - override val psi: PsiElement? by firRef.withFirAndCache { it.findPsi(fir.session) } + override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.session) } override val type: KtType by firRef.withFirAndCache(FirResolvePhase.TYPES) { fir -> builder.buildKtType(fir.returnTypeRef) } override val isVal: Boolean get() = firRef.withFir { it.isVal } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirLocalVariableSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirLocalVariableSymbol.kt index 28d81333081..2ce16c8211c 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirLocalVariableSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirLocalVariableSymbol.kt @@ -34,7 +34,7 @@ internal class KtFirLocalVariableSymbol( } override val firRef = firRef(fir, resolveState) - override val psi: PsiElement? by cached { fir.findPsi(fir.session) } + override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.session) } override val isVal: Boolean get() = firRef.withFir { it.isVal } override val name: Name get() = firRef.withFir { it.name } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirPropertyGetterSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirPropertyGetterSymbol.kt index bde81cb4585..f414881c400 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirPropertyGetterSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirPropertyGetterSymbol.kt @@ -34,7 +34,7 @@ internal class KtFirPropertyGetterSymbol( } override val firRef = firRef(fir, resolveState) - override val psi: PsiElement? by firRef.withFirAndCache { it.findPsi(fir.session) } + override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.session) } override val isDefault: Boolean get() = firRef.withFir { it is FirDefaultPropertyAccessor } override val isInline: Boolean get() = firRef.withFir { it.isInline } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirPropertySetterSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirPropertySetterSymbol.kt index 2391d3582c6..b7bcc2894ad 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirPropertySetterSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirPropertySetterSymbol.kt @@ -34,7 +34,7 @@ internal class KtFirPropertySetterSymbol( } override val firRef = firRef(fir, resolveState) - override val psi: PsiElement? by firRef.withFirAndCache { it.findPsi(fir.session) } + override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.session) } override val isDefault: Boolean get() = firRef.withFir { it is FirDefaultPropertyAccessor } override val isInline: Boolean get() = firRef.withFir { it.isInline } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirPropertySymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirPropertySymbol.kt index c9f93e7623a..639b2cee62e 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirPropertySymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirPropertySymbol.kt @@ -41,7 +41,7 @@ internal class KtFirPropertySymbol( } override val firRef = firRef(fir, resolveState) - override val psi: PsiElement? by firRef.withFirAndCache { it.findPsi(fir.session) } + override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.session) } override val isVal: Boolean get() = firRef.withFir { it.isVal } override val name: Name get() = firRef.withFir { it.name } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirSetterParameterSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirSetterParameterSymbol.kt index 9f87a37ef16..798b0d5b957 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirSetterParameterSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirSetterParameterSymbol.kt @@ -28,7 +28,7 @@ internal class KtFirSetterParameterSymbol( private val builder: KtSymbolByFirBuilder ) : KtSetterParameterSymbol(), KtFirSymbol { override val firRef = firRef(fir, resolveState) - override val psi: PsiElement? by firRef.withFirAndCache { it.findPsi(fir.session) } + override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.session) } override val name: Name get() = firRef.withFir { it.name } override val type: KtType by firRef.withFirAndCache(FirResolvePhase.TYPES) { fir -> builder.buildKtType(fir.returnTypeRef) } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirTypeAliasSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirTypeAliasSymbol.kt index 65010b720e4..d4a93efcb01 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirTypeAliasSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirTypeAliasSymbol.kt @@ -23,7 +23,7 @@ internal class KtFirTypeAliasSymbol( override val token: ValidityToken ) : KtTypeAliasSymbol(), KtFirSymbol { override val firRef = firRef(fir, resolveState) - override val psi: PsiElement? by firRef.withFirAndCache { it.findPsi(fir.session) } + override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.session) } override val name: Name get() = firRef.withFir { it.name } override val classIdIfNonLocal: ClassId get() = firRef.withFir { it.symbol.classId }