[LL FIR] avoid ClassId computation to check isLocal
This commit is contained in:
+5
-4
@@ -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}")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user