FIR IDE: fix memory leak in symbols by firBuilder
This commit is contained in:
+1
-1
@@ -66,5 +66,5 @@ object DebugSymbolRenderer {
|
||||
else -> value::class.simpleName!!
|
||||
}
|
||||
|
||||
private val ignoredPropertyNames = setOf("firRef", "psi", "token")
|
||||
private val ignoredPropertyNames = setOf("firRef", "psi", "token", "builder")
|
||||
}
|
||||
+1
-1
@@ -147,7 +147,7 @@ internal class KtSymbolByFirBuilder private constructor(
|
||||
fun buildAnonymousFunctionSymbol(fir: FirAnonymousFunction) =
|
||||
symbolsCache.cache(fir) { KtFirAnonymousFunctionSymbol(fir, resolveState, token, this) }
|
||||
|
||||
fun buildFileSymbol(fir: FirFile) = filesCache.cache(fir) { KtFirFileSymbol(fir, resolveState, token, this) }
|
||||
fun buildFileSymbol(fir: FirFile) = filesCache.cache(fir) { KtFirFileSymbol(fir, resolveState, token) }
|
||||
|
||||
fun buildVariableSymbol(fir: FirProperty): KtVariableSymbol = symbolsCache.cache(fir) {
|
||||
when {
|
||||
|
||||
+3
-1
@@ -14,6 +14,7 @@ import org.jetbrains.kotlin.idea.frontend.api.ValidityToken
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.KtSymbolByFirBuilder
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.cached
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.firRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.weakRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.*
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtTypeAndAnnotations
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtPsiBasedSymbolPointer
|
||||
@@ -23,8 +24,9 @@ internal class KtFirAnonymousFunctionSymbol(
|
||||
fir: FirAnonymousFunction,
|
||||
resolveState: FirModuleResolveState,
|
||||
override val token: ValidityToken,
|
||||
private val builder: KtSymbolByFirBuilder
|
||||
_builder: KtSymbolByFirBuilder
|
||||
) : KtAnonymousFunctionSymbol(), KtFirSymbol<FirAnonymousFunction> {
|
||||
private val builder by weakRef(_builder)
|
||||
override val firRef = firRef(fir, resolveState)
|
||||
override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.session) }
|
||||
|
||||
|
||||
+3
-2
@@ -16,6 +16,7 @@ import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.annotations.getAnnotat
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.annotations.toAnnotationsList
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.cached
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.firRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.weakRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtAnonymousObjectSymbol
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtAnnotationCall
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolKind
|
||||
@@ -29,9 +30,9 @@ internal class KtFirAnonymousObjectSymbol(
|
||||
fir: FirAnonymousObject,
|
||||
resolveState: FirModuleResolveState,
|
||||
override val token: ValidityToken,
|
||||
private val builder: KtSymbolByFirBuilder
|
||||
_builder: KtSymbolByFirBuilder
|
||||
) : KtAnonymousObjectSymbol(), KtFirSymbol<FirAnonymousObject> {
|
||||
|
||||
private val builder by weakRef(_builder)
|
||||
override val firRef = firRef(fir, resolveState)
|
||||
override val symbolKind: KtSymbolKind = KtSymbolKind.LOCAL
|
||||
override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.session) }
|
||||
|
||||
+3
-1
@@ -18,6 +18,7 @@ import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.annotations.toAnnotati
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.pointers.KtFirClassOrObjectInLibrarySymbol
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.cached
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.firRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.weakRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtClassKind
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtClassOrObjectSymbol
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.*
|
||||
@@ -31,8 +32,9 @@ internal class KtFirClassOrObjectSymbol(
|
||||
fir: FirRegularClass,
|
||||
resolveState: FirModuleResolveState,
|
||||
override val token: ValidityToken,
|
||||
private val builder: KtSymbolByFirBuilder
|
||||
_builder: KtSymbolByFirBuilder
|
||||
) : KtClassOrObjectSymbol(), KtFirSymbol<FirRegularClass> {
|
||||
private val builder by weakRef(_builder)
|
||||
override val firRef = firRef(fir, resolveState)
|
||||
override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.session) }
|
||||
override val name: Name get() = firRef.withFir { it.symbol.classId.shortClassName }
|
||||
|
||||
+3
-1
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.pointers.KtFirConstruc
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.pointers.createSignature
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.cached
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.firRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.weakRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtConstructorParameterSymbol
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtConstructorSymbol
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtAnnotationCall
|
||||
@@ -37,8 +38,9 @@ internal class KtFirConstructorSymbol(
|
||||
fir: FirConstructor,
|
||||
resolveState: FirModuleResolveState,
|
||||
override val token: ValidityToken,
|
||||
private val builder: KtSymbolByFirBuilder
|
||||
_builder: KtSymbolByFirBuilder
|
||||
) : KtConstructorSymbol(), KtFirSymbol<FirConstructor> {
|
||||
private val builder by weakRef(_builder)
|
||||
override val firRef = firRef(fir, resolveState)
|
||||
override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.session) }
|
||||
|
||||
|
||||
+3
-1
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.annotations.getAnnotat
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.annotations.toAnnotationsList
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.cached
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.firRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.weakRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtConstructorParameterSymbol
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtConstructorParameterSymbolKind
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtAnnotationCall
|
||||
@@ -31,8 +32,9 @@ internal class KtFirConstructorValueParameterSymbol(
|
||||
fir: FirValueParameter,
|
||||
resolveState: FirModuleResolveState,
|
||||
override val token: ValidityToken,
|
||||
private val builder: KtSymbolByFirBuilder
|
||||
_builder: KtSymbolByFirBuilder
|
||||
) : KtConstructorParameterSymbol(), KtFirSymbol<FirValueParameter> {
|
||||
private val builder by weakRef(_builder)
|
||||
override val firRef = firRef(fir, resolveState)
|
||||
override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.session) }
|
||||
|
||||
|
||||
+3
-1
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.pointers.KtFirEnumEntr
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.pointers.createSignature
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.cached
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.firRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.weakRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtEnumEntrySymbol
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtTypeAndAnnotations
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtPsiBasedSymbolPointer
|
||||
@@ -28,8 +29,9 @@ internal class KtFirEnumEntrySymbol(
|
||||
fir: FirEnumEntry,
|
||||
resolveState: FirModuleResolveState,
|
||||
override val token: ValidityToken,
|
||||
private val builder: KtSymbolByFirBuilder
|
||||
_builder: KtSymbolByFirBuilder
|
||||
) : KtEnumEntrySymbol(), KtFirSymbol<FirEnumEntry> {
|
||||
private val builder by weakRef(_builder)
|
||||
override val firRef = firRef(fir, resolveState)
|
||||
|
||||
override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.session) }
|
||||
|
||||
+1
-2
@@ -16,6 +16,7 @@ import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.annotations.getAnnotat
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.annotations.toAnnotationsList
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.cached
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.firRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.weakRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtFileSymbol
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtAnnotationCall
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolWithDeclarations
|
||||
@@ -27,9 +28,7 @@ internal class KtFirFileSymbol(
|
||||
fir: FirFile,
|
||||
resolveState: FirModuleResolveState,
|
||||
override val token: ValidityToken,
|
||||
private val builder: KtSymbolByFirBuilder
|
||||
) : KtFileSymbol(), KtSymbolWithDeclarations, KtFirSymbol<FirFile> {
|
||||
|
||||
override val firRef = firRef(fir, resolveState)
|
||||
override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.session) }
|
||||
|
||||
|
||||
+3
-1
@@ -19,6 +19,7 @@ import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.pointers.KtFirMemberFu
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.pointers.createSignature
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.cached
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.firRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.weakRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtFunctionSymbol
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.*
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.CanNotCreateSymbolPointerForLocalLibraryDeclarationException
|
||||
@@ -33,8 +34,9 @@ internal class KtFirFunctionSymbol(
|
||||
fir: FirSimpleFunction,
|
||||
resolveState: FirModuleResolveState,
|
||||
override val token: ValidityToken,
|
||||
private val builder: KtSymbolByFirBuilder
|
||||
_builder: KtSymbolByFirBuilder
|
||||
) : KtFunctionSymbol(), KtFirSymbol<FirSimpleFunction> {
|
||||
private val builder by weakRef(_builder)
|
||||
override val firRef = firRef(fir, resolveState)
|
||||
override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.session) }
|
||||
override val name: Name get() = firRef.withFir { it.name }
|
||||
|
||||
+3
-1
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.annotations.getAnnotat
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.annotations.toAnnotationsList
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.cached
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.firRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.weakRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtFunctionParameterSymbol
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtAnnotationCall
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtTypeAndAnnotations
|
||||
@@ -29,8 +30,9 @@ internal class KtFirFunctionValueParameterSymbol(
|
||||
fir: FirValueParameter,
|
||||
resolveState: FirModuleResolveState,
|
||||
override val token: ValidityToken,
|
||||
private val builder: KtSymbolByFirBuilder
|
||||
_builder: KtSymbolByFirBuilder
|
||||
) : KtFunctionParameterSymbol(), KtFirSymbol<FirValueParameter> {
|
||||
private val builder by weakRef(_builder)
|
||||
override val firRef = firRef(fir, resolveState)
|
||||
override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.session) }
|
||||
|
||||
|
||||
+3
-1
@@ -15,6 +15,7 @@ import org.jetbrains.kotlin.idea.frontend.api.types.KtType
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.KtSymbolByFirBuilder
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.cached
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.firRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.weakRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtJavaFieldSymbol
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtCommonSymbolModality
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolVisibility
|
||||
@@ -27,8 +28,9 @@ internal class KtFirJavaFieldSymbol(
|
||||
fir: FirField,
|
||||
resolveState: FirModuleResolveState,
|
||||
override val token: ValidityToken,
|
||||
private val builder: KtSymbolByFirBuilder
|
||||
_builder: KtSymbolByFirBuilder
|
||||
) : KtJavaFieldSymbol(), KtFirSymbol<FirField> {
|
||||
private val builder by weakRef(_builder)
|
||||
override val firRef = firRef(fir, resolveState)
|
||||
override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.session) }
|
||||
|
||||
|
||||
+3
-1
@@ -21,6 +21,7 @@ import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.pointers.createSignatu
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.cached
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.convertConstantExpression
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.firRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.weakRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtKotlinPropertySymbol
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtPropertyGetterSymbol
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtPropertySetterSymbol
|
||||
@@ -38,13 +39,14 @@ internal class KtFirKotlinPropertySymbol(
|
||||
fir: FirProperty,
|
||||
resolveState: FirModuleResolveState,
|
||||
override val token: ValidityToken,
|
||||
private val builder: KtSymbolByFirBuilder
|
||||
_builder: KtSymbolByFirBuilder
|
||||
) : KtKotlinPropertySymbol(), KtFirSymbol<FirProperty> {
|
||||
init {
|
||||
assert(!fir.isLocal)
|
||||
check(fir !is FirSyntheticProperty)
|
||||
}
|
||||
|
||||
private val builder by weakRef(_builder)
|
||||
override val firRef = firRef(fir, resolveState)
|
||||
override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.session) }
|
||||
|
||||
|
||||
+3
-1
@@ -14,6 +14,7 @@ import org.jetbrains.kotlin.idea.frontend.api.ValidityToken
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.KtSymbolByFirBuilder
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.cached
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.firRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.weakRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtLocalVariableSymbol
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolKind
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtTypeAndAnnotations
|
||||
@@ -26,13 +27,14 @@ internal class KtFirLocalVariableSymbol(
|
||||
fir: FirProperty,
|
||||
resolveState: FirModuleResolveState,
|
||||
override val token: ValidityToken,
|
||||
private val builder: KtSymbolByFirBuilder
|
||||
_builder: KtSymbolByFirBuilder
|
||||
) : KtLocalVariableSymbol(),
|
||||
KtFirSymbol<FirProperty> {
|
||||
init {
|
||||
assert(fir.isLocal)
|
||||
}
|
||||
|
||||
private val builder by weakRef(_builder)
|
||||
override val firRef = firRef(fir, resolveState)
|
||||
override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.session) }
|
||||
|
||||
|
||||
+3
-1
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.annotations.getAnnotat
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.annotations.toAnnotationsList
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.cached
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.firRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.weakRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtPropertyGetterSymbol
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.*
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtPsiBasedSymbolPointer
|
||||
@@ -28,12 +29,13 @@ internal class KtFirPropertyGetterSymbol(
|
||||
fir: FirPropertyAccessor,
|
||||
resolveState: FirModuleResolveState,
|
||||
override val token: ValidityToken,
|
||||
private val builder: KtSymbolByFirBuilder,
|
||||
_builder: KtSymbolByFirBuilder,
|
||||
) : KtPropertyGetterSymbol(), KtFirSymbol<FirPropertyAccessor> {
|
||||
init {
|
||||
require(fir.isGetter)
|
||||
}
|
||||
|
||||
private val builder by weakRef(_builder)
|
||||
override val firRef = firRef(fir, resolveState)
|
||||
override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.session) }
|
||||
|
||||
|
||||
+3
-1
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.annotations.getAnnotat
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.annotations.toAnnotationsList
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.cached
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.firRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.weakRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtPropertySetterSymbol
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSetterParameterSymbol
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.*
|
||||
@@ -29,12 +30,13 @@ internal class KtFirPropertySetterSymbol(
|
||||
fir: FirPropertyAccessor,
|
||||
resolveState: FirModuleResolveState,
|
||||
override val token: ValidityToken,
|
||||
private val builder: KtSymbolByFirBuilder,
|
||||
_builder: KtSymbolByFirBuilder,
|
||||
) : KtPropertySetterSymbol(), KtFirSymbol<FirPropertyAccessor> {
|
||||
init {
|
||||
require(fir.isSetter)
|
||||
}
|
||||
|
||||
private val builder by weakRef(_builder)
|
||||
override val firRef = firRef(fir, resolveState)
|
||||
override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.session) }
|
||||
|
||||
|
||||
+3
-1
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.annotations.getAnnotat
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.annotations.toAnnotationsList
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.cached
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.firRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.weakRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSetterParameterSymbol
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtAnnotationCall
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtTypeAndAnnotations
|
||||
@@ -29,8 +30,9 @@ internal class KtFirSetterParameterSymbol(
|
||||
fir: FirValueParameter,
|
||||
resolveState: FirModuleResolveState,
|
||||
override val token: ValidityToken,
|
||||
private val builder: KtSymbolByFirBuilder
|
||||
_builder: KtSymbolByFirBuilder
|
||||
) : KtSetterParameterSymbol(), KtFirSymbol<FirValueParameter> {
|
||||
private val builder by weakRef(_builder)
|
||||
override val firRef = firRef(fir, resolveState)
|
||||
override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.session) }
|
||||
|
||||
|
||||
+3
-1
@@ -21,6 +21,7 @@ import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.pointers.createSignatu
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.cached
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.convertConstantExpression
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.firRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.weakRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.*
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.*
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.CanNotCreateSymbolPointerForLocalLibraryDeclarationException
|
||||
@@ -36,8 +37,9 @@ internal class KtFirSyntheticJavaPropertySymbol(
|
||||
fir: FirSyntheticProperty,
|
||||
resolveState: FirModuleResolveState,
|
||||
override val token: ValidityToken,
|
||||
private val builder: KtSymbolByFirBuilder
|
||||
_builder: KtSymbolByFirBuilder
|
||||
) : KtSyntheticJavaPropertySymbol(), KtFirSymbol<FirSyntheticProperty> {
|
||||
private val builder by weakRef(_builder)
|
||||
override val firRef = firRef(fir, resolveState)
|
||||
override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.session) }
|
||||
|
||||
|
||||
+2
-1
@@ -20,9 +20,10 @@ import org.jetbrains.kotlin.idea.frontend.api.types.KtType
|
||||
internal class KtFirTypeAndAnnotations<T : FirDeclaration>(
|
||||
private val containingDeclaration: FirRefWithValidityCheck<T>,
|
||||
typeResolvePhase: FirResolvePhase,
|
||||
private val builder: KtSymbolByFirBuilder,
|
||||
_builder: KtSymbolByFirBuilder,
|
||||
private val typeRef: (T) -> FirTypeRef,
|
||||
) : KtTypeAndAnnotations() {
|
||||
private val builder by weakRef(_builder)
|
||||
|
||||
override val token: ValidityToken get() = containingDeclaration.token
|
||||
|
||||
|
||||
+3
-1
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveState
|
||||
import org.jetbrains.kotlin.idea.frontend.api.ValidityToken
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.KtSymbolByFirBuilder
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.firRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.weakRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtTypeParameterSymbol
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtPsiBasedSymbolPointer
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtSymbolPointer
|
||||
@@ -24,8 +25,9 @@ internal class KtFirTypeParameterSymbol(
|
||||
fir: FirTypeParameter,
|
||||
resolveState: FirModuleResolveState,
|
||||
override val token: ValidityToken,
|
||||
private val builder: KtSymbolByFirBuilder
|
||||
_builder: KtSymbolByFirBuilder
|
||||
) : KtTypeParameterSymbol(), KtFirSymbol<FirTypeParameter> {
|
||||
private val builder by weakRef(_builder)
|
||||
override val firRef = firRef(fir, resolveState)
|
||||
override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.session) }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user