[FIR] Move JavaTypeEnhancementState to session component

This commit is contained in:
Dmitriy Novozhilov
2021-07-09 12:06:26 +03:00
committed by teamcityserver
parent e102bdea20
commit aa3a73c6c2
5 changed files with 24 additions and 6 deletions
@@ -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)
@@ -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
@@ -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)
-1
View File
@@ -6,7 +6,6 @@ plugins {
}
dependencies {
api(project(":core:compiler.common.jvm"))
api(project(":compiler:frontend.common"))
api(project(":compiler:fir:cones"))
@@ -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<FirSessionComponent, FirSessionComponent>() {
abstract class FirSession @PrivateSessionConstructor constructor(
val sessionProvider: FirSessionProvider?
) : ComponentArrayOwner<FirSessionComponent, FirSessionComponent>() {
companion object : TypeRegistry<FirSessionComponent, FirSessionComponent>() {
inline fun <reified T : FirSessionComponent> sessionComponentAccessor(): ArrayMapAccessor<FirSessionComponent, FirSessionComponent, T> {
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<FirSessionComponent, FirSessionComponent> = Companion