From 25bee057e01df0ab9a5a79a9d0192b17abb4ab46 Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Tue, 12 May 2020 17:41:59 +0300 Subject: [PATCH] FIR: Do not retrieve file for callable until it's needed --- .../kotlin/fir/resolve/calls/ResolverParts.kt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ResolverParts.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ResolverParts.kt index 08c6866757e..69aa9765490 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ResolverParts.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ResolverParts.kt @@ -434,11 +434,6 @@ internal object CheckVisibility : CheckerStage() { val containingDeclarations = callInfo.containingDeclarations val session = callInfo.session val provider = session.firProvider - val candidateFile = when (symbol) { - is FirClassLikeSymbol<*> -> provider.getFirClassifierContainerFileIfAny(symbol) - is FirCallableSymbol<*> -> provider.getFirCallableContainerFile(symbol) - else -> null - } val ownerId = symbol.getOwnerId() val visible = when (declaration.visibility) { JavaVisibilities.PACKAGE_VISIBILITY -> { @@ -450,6 +445,11 @@ internal object CheckVisibility : CheckerStage() { Visibilities.PRIVATE, Visibilities.PRIVATE_TO_THIS -> { if (declaration.session == callInfo.session) { if (ownerId == null || declaration is FirConstructor && declaration.isFromSealedClass) { + val candidateFile = when (symbol) { + is FirClassLikeSymbol<*> -> provider.getFirClassifierContainerFileIfAny(symbol) + is FirCallableSymbol<*> -> provider.getFirCallableContainerFile(symbol) + else -> null + } // Top-level: visible in file candidateFile == useSiteFile } else {