From 29ee4371d0fda5583280d0f3eeb654f3765adbad Mon Sep 17 00:00:00 2001 From: Simon Ogorodnik Date: Fri, 23 Mar 2018 14:18:32 +0300 Subject: [PATCH] FIR: Optimize fqName creation in ImportResolveTransformer --- .../resolve/transformers/FirImportResolveTransformer.kt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirImportResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirImportResolveTransformer.kt index a68ceb89902..65b4f55b7c2 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirImportResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirImportResolveTransformer.kt @@ -31,7 +31,7 @@ class FirImportResolveTransformer : FirTransformer() { val firProvider = FirSymbolProvider.getInstance(import.session) if (!fqName.isRoot) { - val lastPart = mutableListOf() + val lastPart = StringBuilder() var firstPart = fqName if (import.isAllUnder && firProvider.getPackage(firstPart) != null) { @@ -39,10 +39,13 @@ class FirImportResolveTransformer : FirTransformer() { } while (!firstPart.isRoot) { - lastPart.add(0, firstPart.shortName().asString()) + if (lastPart.isNotEmpty()) + lastPart.insert(0, '.') + lastPart.insert(0, firstPart.shortName().asString()) + firstPart = firstPart.parent() - val resolvedFqName = ClassId(firstPart, FqName.fromSegments(lastPart), false) + val resolvedFqName = ClassId(firstPart, FqName(lastPart.toString()), false) val foundSymbol = firProvider.getSymbolByFqName(resolvedFqName) if (foundSymbol != null) {