K2: split JavaTypeParameterStack to mutable/immutable
#KT-62314 Fixed
This commit is contained in:
committed by
Space Team
parent
b43ceab880
commit
3ff16f7798
@@ -77,7 +77,7 @@ abstract class FirJavaFacade(
|
||||
}
|
||||
private val knownClassNamesInPackage = session.firCachesFactory.createCache(classFinder::knownClassNamesInPackage)
|
||||
|
||||
private val parentClassTypeParameterStackCache = mutableMapOf<FirRegularClassSymbol, JavaTypeParameterStack>()
|
||||
private val parentClassTypeParameterStackCache = mutableMapOf<FirRegularClassSymbol, MutableJavaTypeParameterStack>()
|
||||
private val parentClassEffectiveVisibilityCache = mutableMapOf<FirRegularClassSymbol, EffectiveVisibility>()
|
||||
private val statusExtensions = session.extensionService.statusTransformerExtensions
|
||||
|
||||
@@ -102,7 +102,7 @@ abstract class FirJavaFacade(
|
||||
abstract fun getModuleDataForClass(javaClass: JavaClass): FirModuleData
|
||||
|
||||
private fun JavaTypeParameter.toFirTypeParameter(
|
||||
javaTypeParameterStack: JavaTypeParameterStack,
|
||||
javaTypeParameterStack: MutableJavaTypeParameterStack,
|
||||
containingDeclarationSymbol: FirBasedSymbol<*>,
|
||||
moduleData: FirModuleData,
|
||||
): FirTypeParameter {
|
||||
@@ -131,7 +131,7 @@ abstract class FirJavaFacade(
|
||||
}
|
||||
|
||||
private fun List<JavaTypeParameter>.convertTypeParameters(
|
||||
stack: JavaTypeParameterStack,
|
||||
stack: MutableJavaTypeParameterStack,
|
||||
containingDeclarationSymbol: FirBasedSymbol<*>,
|
||||
moduleData: FirModuleData,
|
||||
): List<FirTypeParameter> {
|
||||
@@ -154,7 +154,7 @@ abstract class FirJavaFacade(
|
||||
javaClass: JavaClass,
|
||||
): FirJavaClass {
|
||||
val classId = classSymbol.classId
|
||||
val javaTypeParameterStack = JavaTypeParameterStack()
|
||||
val javaTypeParameterStack = MutableJavaTypeParameterStack()
|
||||
|
||||
if (parentClassSymbol != null) {
|
||||
val parentStack = parentClassTypeParameterStackCache[parentClassSymbol]
|
||||
@@ -235,7 +235,7 @@ abstract class FirJavaFacade(
|
||||
classSymbol: FirRegularClassSymbol,
|
||||
parentClassSymbol: FirRegularClassSymbol?,
|
||||
classId: ClassId,
|
||||
javaTypeParameterStack: JavaTypeParameterStack,
|
||||
javaTypeParameterStack: MutableJavaTypeParameterStack,
|
||||
): FirJavaClass {
|
||||
val valueParametersForAnnotationConstructor = ValueParametersForAnnotationConstructor()
|
||||
val classIsAnnotation = javaClass.classKind == ClassKind.ANNOTATION_CLASS
|
||||
@@ -497,7 +497,7 @@ abstract class FirJavaFacade(
|
||||
private fun convertJavaFieldToFir(
|
||||
javaField: JavaField,
|
||||
classId: ClassId,
|
||||
javaTypeParameterStack: JavaTypeParameterStack,
|
||||
javaTypeParameterStack: MutableJavaTypeParameterStack,
|
||||
dispatchReceiver: ConeClassLikeType,
|
||||
moduleData: FirModuleData,
|
||||
): FirDeclaration {
|
||||
@@ -565,7 +565,7 @@ abstract class FirJavaFacade(
|
||||
containingClass: JavaClass,
|
||||
javaMethod: JavaMethod,
|
||||
classId: ClassId,
|
||||
javaTypeParameterStack: JavaTypeParameterStack,
|
||||
javaTypeParameterStack: MutableJavaTypeParameterStack,
|
||||
dispatchReceiver: ConeClassLikeType,
|
||||
moduleData: FirModuleData,
|
||||
): FirJavaMethod {
|
||||
@@ -630,7 +630,7 @@ abstract class FirJavaFacade(
|
||||
javaClass: JavaClass,
|
||||
ownerClassBuilder: FirJavaClassBuilder,
|
||||
classTypeParameters: List<FirTypeParameter>,
|
||||
javaTypeParameterStack: JavaTypeParameterStack,
|
||||
javaTypeParameterStack: MutableJavaTypeParameterStack,
|
||||
outerClassSymbol: FirRegularClassSymbol?,
|
||||
moduleData: FirModuleData,
|
||||
): FirJavaConstructor {
|
||||
|
||||
+9
-4
@@ -8,18 +8,18 @@ package org.jetbrains.kotlin.fir.java
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
|
||||
import org.jetbrains.kotlin.load.java.structure.JavaTypeParameter
|
||||
|
||||
class JavaTypeParameterStack : Iterable<Map.Entry<JavaTypeParameter, FirTypeParameterSymbol>> {
|
||||
class MutableJavaTypeParameterStack : JavaTypeParameterStack() {
|
||||
private val typeParameterMap = mutableMapOf<JavaTypeParameter, FirTypeParameterSymbol>()
|
||||
|
||||
fun addParameter(javaTypeParameter: JavaTypeParameter, symbol: FirTypeParameterSymbol) {
|
||||
typeParameterMap[javaTypeParameter] = symbol
|
||||
}
|
||||
|
||||
fun addStack(javaTypeParameterStack: JavaTypeParameterStack) {
|
||||
fun addStack(javaTypeParameterStack: MutableJavaTypeParameterStack) {
|
||||
typeParameterMap += javaTypeParameterStack.typeParameterMap
|
||||
}
|
||||
|
||||
operator fun get(javaTypeParameter: JavaTypeParameter): FirTypeParameterSymbol {
|
||||
override operator fun get(javaTypeParameter: JavaTypeParameter): FirTypeParameterSymbol {
|
||||
return typeParameterMap[javaTypeParameter]
|
||||
?: throw IllegalArgumentException("Cannot find Java type parameter $javaTypeParameter in stack")
|
||||
}
|
||||
@@ -28,7 +28,12 @@ class JavaTypeParameterStack : Iterable<Map.Entry<JavaTypeParameter, FirTypePara
|
||||
return typeParameterMap.iterator()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
abstract class JavaTypeParameterStack : Iterable<Map.Entry<JavaTypeParameter, FirTypeParameterSymbol>> {
|
||||
abstract operator fun get(javaTypeParameter: JavaTypeParameter): FirTypeParameterSymbol
|
||||
|
||||
companion object {
|
||||
val EMPTY: JavaTypeParameterStack = JavaTypeParameterStack()
|
||||
val EMPTY: JavaTypeParameterStack = MutableJavaTypeParameterStack()
|
||||
}
|
||||
}
|
||||
@@ -18,7 +18,7 @@ import org.jetbrains.kotlin.fir.builder.toMutableOrEmpty
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.fir.declarations.builder.FirRegularClassBuilder
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
|
||||
import org.jetbrains.kotlin.fir.java.JavaTypeParameterStack
|
||||
import org.jetbrains.kotlin.fir.java.MutableJavaTypeParameterStack
|
||||
import org.jetbrains.kotlin.fir.java.convertAnnotationsToFir
|
||||
import org.jetbrains.kotlin.fir.java.enhancement.FirSignatureEnhancement
|
||||
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
|
||||
@@ -49,7 +49,7 @@ class FirJavaClass @FirImplementationDetail internal constructor(
|
||||
private val unenhnancedSuperTypes: List<FirTypeRef>,
|
||||
override val typeParameters: MutableList<FirTypeParameterRef>,
|
||||
internal val javaPackage: JavaPackage?,
|
||||
val javaTypeParameterStack: JavaTypeParameterStack,
|
||||
val javaTypeParameterStack: MutableJavaTypeParameterStack,
|
||||
internal val existingNestedClassifierNames: List<Name>,
|
||||
private val isDeprecatedInJavaDoc: Boolean,
|
||||
) : FirRegularClass() {
|
||||
@@ -156,7 +156,7 @@ class FirJavaClassBuilder : FirRegularClassBuilder(), FirAnnotationContainerBuil
|
||||
var isTopLevel: Boolean by Delegates.notNull()
|
||||
var isStatic: Boolean by Delegates.notNull()
|
||||
var javaPackage: JavaPackage? = null
|
||||
lateinit var javaTypeParameterStack: JavaTypeParameterStack
|
||||
lateinit var javaTypeParameterStack: MutableJavaTypeParameterStack
|
||||
val existingNestedClassifierNames: MutableList<Name> = mutableListOf()
|
||||
var isDeprecatedInJavaDoc: Boolean = false
|
||||
|
||||
|
||||
Reference in New Issue
Block a user