From 140120abc26970efb4960f4cbbe9a0a1215f74f1 Mon Sep 17 00:00:00 2001 From: Simon Ogorodnik Date: Fri, 23 Mar 2018 18:39:21 +0300 Subject: [PATCH] FIR: Optimize iteration --- .../src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt | 5 ++++- .../org/jetbrains/kotlin/fir/types/impl/FirUserTypeImpl.kt | 3 +-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt b/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt index ac9e5fceb0e..62115448b5e 100644 --- a/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt +++ b/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt @@ -430,11 +430,14 @@ class RawFirBuilder(val session: FirSession) { for (typeArgument in qualifier!!.typeArguments) { firQualifier.typeArguments += typeArgument.convert() } - userType.qualifier.add(0, firQualifier) + userType.qualifier.add(firQualifier) qualifier = qualifier.qualifier referenceExpression = qualifier?.referenceExpression } while (referenceExpression != null) + + userType.qualifier.reverse() + userType } else { FirErrorTypeImpl(session, typeReference, "Incomplete user type") diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirUserTypeImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirUserTypeImpl.kt index f210300eccf..e1ea9095772 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirUserTypeImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirUserTypeImpl.kt @@ -13,14 +13,13 @@ import org.jetbrains.kotlin.fir.types.FirQualifierPart import org.jetbrains.kotlin.fir.types.FirTypeProjection import org.jetbrains.kotlin.fir.types.FirUserType import org.jetbrains.kotlin.fir.visitors.FirTransformer -import java.util.* class FirUserTypeImpl( session: FirSession, psi: PsiElement?, isNullable: Boolean ) : FirAbstractAnnotatedType(session, psi, isNullable), FirUserType { - override val qualifier = LinkedList() + override val qualifier = mutableListOf() override fun transformChildren(transformer: FirTransformer, data: D): FirElement { for (part in qualifier) {