diff --git a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/ComponentsContainers.kt b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/ComponentsContainers.kt index 61fd1722ac4..3b0ca582a7c 100644 --- a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/ComponentsContainers.kt +++ b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/ComponentsContainers.kt @@ -19,6 +19,7 @@ import org.jetbrains.kotlin.fir.extensions.FirExtensionService import org.jetbrains.kotlin.fir.extensions.FirPredicateBasedProvider import org.jetbrains.kotlin.fir.extensions.FirRegisteredPluginAnnotations import org.jetbrains.kotlin.fir.java.FirJavaVisibilityChecker +import org.jetbrains.kotlin.fir.java.enhancement.FirJavaTypeEnhancementStateComponent import org.jetbrains.kotlin.fir.java.enhancement.FirJsr305StateContainer import org.jetbrains.kotlin.fir.resolve.* import org.jetbrains.kotlin.fir.resolve.calls.ConeCallConflictResolverFactory @@ -33,6 +34,7 @@ import org.jetbrains.kotlin.fir.resolve.transformers.plugin.GeneratedClassIndex import org.jetbrains.kotlin.fir.scopes.impl.FirDeclaredMemberScopeProvider import org.jetbrains.kotlin.fir.types.FirCorrespondingSupertypesCache import org.jetbrains.kotlin.incremental.components.LookupTracker +import org.jetbrains.kotlin.load.java.JavaTypeEnhancementState // -------------------------- Required components -------------------------- @@ -94,6 +96,7 @@ fun FirSession.registerJavaSpecificResolveComponents() { register(FirSyntheticNamesProvider::class, FirJavaSyntheticNamesProvider) register(FirJsr305StateContainer::class, FirJsr305StateContainer.Default) register(FirOverridesBackwardCompatibilityHelper::class, FirJvmOverridesBackwardCompatibilityHelper) + register(FirJavaTypeEnhancementStateComponent::class, FirJavaTypeEnhancementStateComponent(JavaTypeEnhancementState.DEFAULT)) } @OptIn(SessionConfiguration::class) diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/JavaTypeEnhancementStateContainer.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/JavaTypeEnhancementStateContainer.kt new file mode 100644 index 00000000000..0e9cb1bf9d3 --- /dev/null +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/JavaTypeEnhancementStateContainer.kt @@ -0,0 +1,17 @@ +/* + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.fir.java.enhancement + +import org.jetbrains.kotlin.fir.FirSession +import org.jetbrains.kotlin.fir.FirSessionComponent +import org.jetbrains.kotlin.load.java.JavaTypeEnhancementState + +class FirJavaTypeEnhancementStateComponent(val javaTypeEnhancementState: JavaTypeEnhancementState) : FirSessionComponent + +private val FirSession.javaTypeEnhancementStateComponent: FirJavaTypeEnhancementStateComponent by FirSession.sessionComponentAccessor() + +val FirSession.javaTypeEnhancementState: JavaTypeEnhancementState + get() = javaTypeEnhancementStateComponent.javaTypeEnhancementState diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/SignatureEnhancement.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/SignatureEnhancement.kt index 446e3901d03..98cc5255cd5 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/SignatureEnhancement.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/SignatureEnhancement.kt @@ -52,7 +52,7 @@ class FirSignatureEnhancement( private val javaTypeParameterStack: JavaTypeParameterStack = if (owner is FirJavaClass) owner.javaTypeParameterStack else JavaTypeParameterStack.EMPTY - private val jsr305State: JavaTypeEnhancementState = session.javaTypeEnhancementState ?: JavaTypeEnhancementState.DEFAULT + private val jsr305State: JavaTypeEnhancementState = session.javaTypeEnhancementState private val typeQualifierResolver = FirAnnotationTypeQualifierResolver(session, jsr305State) diff --git a/compiler/fir/tree/build.gradle.kts b/compiler/fir/tree/build.gradle.kts index 2785ddccadb..a261ca6eb99 100644 --- a/compiler/fir/tree/build.gradle.kts +++ b/compiler/fir/tree/build.gradle.kts @@ -6,7 +6,6 @@ plugins { } dependencies { - api(project(":core:compiler.common.jvm")) api(project(":compiler:frontend.common")) api(project(":compiler:fir:cones")) diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirSession.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirSession.kt index af9cb4387bc..2edf64a8098 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirSession.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirSession.kt @@ -10,12 +10,13 @@ import org.jetbrains.kotlin.fir.utils.ArrayMapAccessor import org.jetbrains.kotlin.fir.utils.ComponentArrayOwner import org.jetbrains.kotlin.fir.utils.NullableArrayMapAccessor import org.jetbrains.kotlin.fir.utils.TypeRegistry -import org.jetbrains.kotlin.load.java.JavaTypeEnhancementState import kotlin.reflect.KClass interface FirSessionComponent -abstract class FirSession @PrivateSessionConstructor constructor(val sessionProvider: FirSessionProvider?) : ComponentArrayOwner() { +abstract class FirSession @PrivateSessionConstructor constructor( + val sessionProvider: FirSessionProvider? +) : ComponentArrayOwner() { companion object : TypeRegistry() { inline fun sessionComponentAccessor(): ArrayMapAccessor { return generateAccessor(T::class) @@ -26,8 +27,6 @@ abstract class FirSession @PrivateSessionConstructor constructor(val sessionProv } } - val javaTypeEnhancementState: JavaTypeEnhancementState? get() = null - open val builtinTypes: BuiltinTypes = BuiltinTypes() final override val typeRegistry: TypeRegistry = Companion