From fc7712148e09a6666ae1cd9f0ec60d2f08215075 Mon Sep 17 00:00:00 2001 From: Dmitrii Gridin Date: Sat, 17 Jun 2023 12:31:41 +0200 Subject: [PATCH] [LL FIR] avoid ClassId computation to check isLocal --- .../api/fir/lazy/resolve/NonLocalDeclarationUtils.kt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/NonLocalDeclarationUtils.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/NonLocalDeclarationUtils.kt index 009d2a5c6d5..c0b84b46f20 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/NonLocalDeclarationUtils.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/NonLocalDeclarationUtils.kt @@ -51,16 +51,17 @@ internal fun FirDeclaration.getKtDeclarationForFirElement(): KtDeclaration { internal fun declarationCanBeLazilyResolved(declaration: KtDeclaration): Boolean = when (declaration) { is KtDestructuringDeclarationEntry, is KtFunctionLiteral, is KtTypeParameter -> false - is KtPrimaryConstructor -> (declaration.parent as? KtClassOrObject)?.getClassId() != null - is KtParameter -> declaration.hasValOrVar() && declaration.containingClassOrObject?.getClassId() != null + is KtPrimaryConstructor -> (declaration.parent as? KtClassOrObject)?.isLocal == false + is KtParameter -> declaration.hasValOrVar() && declaration.containingClassOrObject?.isLocal == false is KtCallableDeclaration, is KtEnumEntry, is KtClassInitializer -> { when (val parent = declaration.parent) { is KtFile -> true - is KtClassBody -> (parent.parent as? KtClassOrObject)?.getClassId() != null + is KtClassBody -> (parent.parent as? KtClassOrObject)?.isLocal == false else -> false } } !is KtNamedDeclaration -> false - is KtClassLikeDeclaration -> declaration.getClassId() != null + is KtClassOrObject -> !declaration.isLocal + is KtTypeAlias -> declaration.isTopLevel() || declaration.getClassId() != null else -> error("Unexpected ${declaration::class.qualifiedName}") }