[FIR] Introduce cache for not-yet-enhanced synthetic properties

The original synthetic properties from Java were not cached anywhere and
created anew for every session. However, the enhanced properties are
(along with their originals) saved inside the session's cache, causing
inconsistency with newly created symbols via referential equality.
This commit is contained in:
Artem Vasilev
2023-01-24 15:25:15 +01:00
committed by Space Team
parent cb655d2d37
commit 075a80613b
3 changed files with 35 additions and 3 deletions
@@ -26,6 +26,7 @@ import org.jetbrains.kotlin.fir.java.JvmSupertypeUpdater
import org.jetbrains.kotlin.fir.java.enhancement.FirAnnotationTypeQualifierResolver
import org.jetbrains.kotlin.fir.java.enhancement.FirEnhancedSymbolsStorage
import org.jetbrains.kotlin.fir.java.scopes.JavaOverridabilityRules
import org.jetbrains.kotlin.fir.java.FirOriginalSyntheticPropertiesStorage
import org.jetbrains.kotlin.fir.resolve.*
import org.jetbrains.kotlin.fir.resolve.calls.ConeCallConflictResolverFactory
import org.jetbrains.kotlin.fir.resolve.calls.FirSyntheticNamesProvider
@@ -88,6 +89,7 @@ fun FirSession.registerCommonJavaComponents(javaModuleResolver: JavaModuleResolv
val jsr305State = languageVersionSettings.getFlag(JvmAnalysisFlags.javaTypeEnhancementState)
register(FirAnnotationTypeQualifierResolver::class, FirAnnotationTypeQualifierResolver(this, jsr305State, javaModuleResolver))
register(FirEnhancedSymbolsStorage::class, FirEnhancedSymbolsStorage(this))
register(FirOriginalSyntheticPropertiesStorage::class, FirOriginalSyntheticPropertiesStorage(this))
register(
FirJvmDefaultModeComponent::class,
FirJvmDefaultModeComponent(languageVersionSettings.getFlag(JvmAnalysisFlags.jvmDefaultMode))