From f33f87e3d4ea1306f015291c668d83649756034f Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Thu, 15 Dec 2022 14:48:13 +0100 Subject: [PATCH] K2: drop unused qualifier in FirJavaTypeRef --- .../src/org/jetbrains/kotlin/fir/java/FirJavaFacade.kt | 6 +++--- .../jetbrains/kotlin/fir/java/javaAnnotationsMapping.kt | 2 +- .../org/jetbrains/kotlin/fir/types/jvm/FirJavaTypeRef.kt | 9 +++++---- .../org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt | 9 +++++---- .../org/jetbrains/kotlin/fir/tree/generator/FieldSets.kt | 5 ++++- 5 files changed, 18 insertions(+), 13 deletions(-) diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaFacade.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaFacade.kt index 07e3ef6a8e5..ff2ebaff24d 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaFacade.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaFacade.kt @@ -119,7 +119,7 @@ abstract class FirJavaFacade( } }.apply { // TODO: should be lazy (in case annotations refer to the containing class) - addAnnotationsFromJava(session, this@toFirTypeParameter, javaTypeParameterStack) + setAnnotationsFromJava(session, this@toFirTypeParameter, javaTypeParameterStack) } } @@ -182,7 +182,7 @@ abstract class FirJavaFacade( // 1. Resolve annotations // 2. Enhance type parameter bounds - may refer to each other, take default nullability from annotations // 3. Enhance super types - may refer to type parameter bounds, take default nullability from annotations - firJavaClass.addAnnotationsFromJava(session, javaClass, javaTypeParameterStack) + firJavaClass.setAnnotationsFromJava(session, javaClass, javaTypeParameterStack) enhancement.enhanceTypeParameterBoundsAfterFirstRound(firJavaClass.typeParameters, initialBounds) @@ -515,7 +515,7 @@ abstract class FirJavaFacade( }.apply { containingClassForStaticMemberAttr = ConeClassLikeLookupTagImpl(classId) // TODO: check if this works properly with annotations that take the enum class as an argument - addAnnotationsFromJava(session, javaField, javaTypeParameterStack) + setAnnotationsFromJava(session, javaField, javaTypeParameterStack) } else -> buildJavaField { source = javaField.toSourceElement() diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/javaAnnotationsMapping.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/javaAnnotationsMapping.kt index afa004c9269..84b9c178d70 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/javaAnnotationsMapping.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/javaAnnotationsMapping.kt @@ -49,7 +49,7 @@ internal fun JavaAnnotationOwner.convertAnnotationsToFir( session: FirSession, javaTypeParameterStack: JavaTypeParameterStack ): List = annotations.convertAnnotationsToFir(session, javaTypeParameterStack) -internal fun FirAnnotationContainer.addAnnotationsFromJava( +internal fun FirAnnotationContainer.setAnnotationsFromJava( session: FirSession, javaAnnotationOwner: JavaAnnotationOwner, javaTypeParameterStack: JavaTypeParameterStack diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/types/jvm/FirJavaTypeRef.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/types/jvm/FirJavaTypeRef.kt index 04ed2fbd63b..739d58877f0 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/types/jvm/FirJavaTypeRef.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/types/jvm/FirJavaTypeRef.kt @@ -21,8 +21,7 @@ import org.jetbrains.kotlin.load.java.structure.JavaType class FirJavaTypeRef( val type: JavaType, - annotationBuilder: () -> List, - override val qualifier: MutableList + annotationBuilder: () -> List ) : FirUserTypeRef() { override val customRenderer: Boolean get() = true @@ -35,6 +34,9 @@ class FirJavaTypeRef( override val annotations: List by lazy { annotationBuilder() } + override val qualifier: List + get() = emptyList() + override fun acceptChildren(visitor: FirVisitor, data: D) { for (part in qualifier) { part.typeArgumentList.typeArguments.forEach { it.accept(visitor, data) } @@ -66,10 +68,9 @@ class FirJavaTypeRef( class FirJavaTypeRefBuilder { lateinit var annotationBuilder: () -> List lateinit var type: JavaType - val qualifier: MutableList = mutableListOf() fun build(): FirJavaTypeRef { - return FirJavaTypeRef(type, annotationBuilder, qualifier) + return FirJavaTypeRef(type, annotationBuilder) } } diff --git a/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt b/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt index 187e7055c21..feb12441b30 100644 --- a/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt +++ b/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt @@ -701,10 +701,11 @@ open class RawFirBuilder( private fun KtAnnotated.extractAnnotationsTo(container: FirAnnotationContainer) { if (annotationEntries.isEmpty()) return - val annotations = mutableListOf() - annotations.addAll(container.annotations) - for (annotationEntry in annotationEntries) { - annotations += annotationEntry.convert() + val annotations = buildList { + addAll(container.annotations) + for (annotationEntry in annotationEntries) { + add(annotationEntry.convert()) + } } container.replaceAnnotations(annotations) } diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FieldSets.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FieldSets.kt index 1e414e6dbc9..3a85d386ac4 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FieldSets.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FieldSets.kt @@ -39,7 +39,10 @@ object FieldSets { val annotations by lazy { fieldList( - "annotations", annotation, withReplace = true, useMutableOrEmpty = true + "annotations", + annotation, + withReplace = true, + useMutableOrEmpty = true ).withTransform(needTransformInOtherChildren = true) }