From f20dd8b6739e052f5990886a3cb9fc9107d0b823 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Sun, 20 Jun 2021 22:18:39 +0200 Subject: [PATCH] FIR IDE: fixes after rebase --- .../idea/fir/low/level/api/FirModuleResolveStateImpl.kt | 3 --- .../fir/low/level/api/api/FirDeclarationDesignation.kt | 3 +-- .../level/api/api/LowLevelFirApiFacadeForResolveOnAir.kt | 6 ++---- .../level/api/lazy/resolve/FirLazyDeclarationResolver.kt | 5 ++--- .../level/api/lazy/resolve/NonLocalDeclarationUtils.kt | 2 +- .../level/api/transformers/FirLazyTransformerForIDE.kt | 1 - .../level/api/AbstractPartialRawFirBuilderTestCase.kt | 1 - .../api/compiler/based/AbstractCompilerBasedTest.kt | 0 .../api/compiler/based/FrontendApiTestWithTestdata.kt | 9 ++++++++- .../frontend/api/fir/renderer/ConeTypeIdeRenderer.kt | 3 +-- .../frontend/api/fir/symbols/KtFirTypeAndAnnotations.kt | 5 ++--- 11 files changed, 17 insertions(+), 21 deletions(-) delete mode 100644 idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/compiler/based/AbstractCompilerBasedTest.kt diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/FirModuleResolveStateImpl.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/FirModuleResolveStateImpl.kt index 2a434725fa2..086c8f3d4a4 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/FirModuleResolveStateImpl.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/FirModuleResolveStateImpl.kt @@ -15,9 +15,6 @@ import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.realPsi import org.jetbrains.kotlin.fir.resolve.symbolProvider import org.jetbrains.kotlin.fir.resolve.ScopeSession -import org.jetbrains.kotlin.idea.caches.project.IdeaModuleInfo -import org.jetbrains.kotlin.idea.caches.project.ModuleSourceInfo -import org.jetbrains.kotlin.idea.caches.project.getModuleInfo import org.jetbrains.kotlin.idea.fir.low.level.api.annotations.InternalForInline import org.jetbrains.kotlin.idea.fir.low.level.api.api.DiagnosticCheckerFilter import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveState diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/api/FirDeclarationDesignation.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/api/FirDeclarationDesignation.kt index f468ce3f528..11db5f84afd 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/api/FirDeclarationDesignation.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/api/FirDeclarationDesignation.kt @@ -13,7 +13,6 @@ import org.jetbrains.kotlin.fir.renderWithType import org.jetbrains.kotlin.fir.resolve.firProvider import org.jetbrains.kotlin.fir.resolve.toFirRegularClass import org.jetbrains.kotlin.idea.fir.low.level.api.util.getContainingFile -import org.jetbrains.kotlin.idea.util.ifFalse class FirDeclarationDesignationWithFile( path: List, @@ -77,7 +76,7 @@ private fun collectDesignationPath(declaration: FirDeclaration): List originalDeclaration.withBodyFrom(newDeclarationWithReplacement as FirSimpleFunction) @@ -263,7 +261,7 @@ object LowLevelFirApiFacadeForResolveOnAir { is FirTypeAlias -> newDeclarationWithReplacement else -> error("Not supported type ${originalDeclaration::class.simpleName}") } - } ?: newDeclarationWithReplacement + } else newDeclarationWithReplacement val onAirDesignation = FirDeclarationDesignationWithFile( path = originalDesignation.path, diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/FirLazyDeclarationResolver.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/FirLazyDeclarationResolver.kt index 5772dce99a7..439f2ffdd66 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/FirLazyDeclarationResolver.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/FirLazyDeclarationResolver.kt @@ -26,7 +26,6 @@ import org.jetbrains.kotlin.idea.fir.low.level.api.transformers.LazyTransformerF import org.jetbrains.kotlin.idea.fir.low.level.api.util.checkCanceled import org.jetbrains.kotlin.idea.fir.low.level.api.util.ensurePhase import org.jetbrains.kotlin.idea.fir.low.level.api.util.findSourceNonLocalFirDeclaration -import org.jetbrains.kotlin.idea.util.ifTrue import org.jetbrains.kotlin.idea.fir.low.level.api.transformers.* import org.jetbrains.kotlin.idea.fir.low.level.api.util.* import org.jetbrains.kotlin.psi.* @@ -160,7 +159,7 @@ internal class FirLazyDeclarationResolver(private val firFileBuilder: FirFileBui val transformersToApply = designations.mapNotNull { val needToResolve = it.resolvePhaseForAllDeclarations(includeDeclarationPhase = false) < currentPhase - needToResolve.ifTrue { + if (needToResolve) { LazyTransformerFactory.createLazyTransformer( phase = currentPhase, designation = it, @@ -172,7 +171,7 @@ internal class FirLazyDeclarationResolver(private val firFileBuilder: FirFileBui firProviderInterceptor = null, checkPCE = checkPCE, ) - } + } else null } if (transformersToApply.isEmpty()) continue diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/NonLocalDeclarationUtils.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/NonLocalDeclarationUtils.kt index d43845c6fbd..4796e702f43 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/NonLocalDeclarationUtils.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/NonLocalDeclarationUtils.kt @@ -5,7 +5,6 @@ package org.jetbrains.kotlin.idea.fir.low.level.api.lazy.resolve -import com.intellij.psi.util.parentOfType import org.jetbrains.kotlin.fir.FirFakeSourceElement import org.jetbrains.kotlin.fir.FirFakeSourceElementKind import org.jetbrains.kotlin.fir.declarations.* @@ -17,6 +16,7 @@ import org.jetbrains.kotlin.idea.fir.low.level.api.element.builder.getNonLocalCo import org.jetbrains.kotlin.idea.fir.low.level.api.file.builder.FirFileBuilder import org.jetbrains.kotlin.idea.fir.low.level.api.file.builder.ModuleFileCache import org.jetbrains.kotlin.idea.fir.low.level.api.util.findSourceNonLocalFirDeclaration +import org.jetbrains.kotlin.idea.fir.low.level.api.util.parentOfType import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject import org.jetbrains.kotlin.psi.psiUtil.getParentOfType diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirLazyTransformerForIDE.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirLazyTransformerForIDE.kt index 3f25fe15893..c8636c5d808 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirLazyTransformerForIDE.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirLazyTransformerForIDE.kt @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.idea.fir.low.level.api.transformers import org.jetbrains.annotations.TestOnly -import org.jetbrains.kotlin.asJava.classes.lazyPub import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.idea.fir.low.level.api.FirPhaseRunner import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirDeclarationDesignation diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractPartialRawFirBuilderTestCase.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractPartialRawFirBuilderTestCase.kt index 729bb1d673d..9faf237e677 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractPartialRawFirBuilderTestCase.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractPartialRawFirBuilderTestCase.kt @@ -16,7 +16,6 @@ import org.jetbrains.kotlin.fir.scopes.FirTypeScope import org.jetbrains.kotlin.fir.session.FirSessionFactory import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirDeclarationDesignation -import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirDeclarationUntypedDesignation import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveState import org.jetbrains.kotlin.idea.fir.low.level.api.compiler.based.FrontendApiSingleTestDataFileTest import org.jetbrains.kotlin.idea.fir.low.level.api.lazy.resolve.RawFirNonLocalDeclarationBuilder diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/compiler/based/AbstractCompilerBasedTest.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/compiler/based/AbstractCompilerBasedTest.kt deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/compiler/based/FrontendApiTestWithTestdata.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/compiler/based/FrontendApiTestWithTestdata.kt index 165adc79db3..398e3d8fdc1 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/compiler/based/FrontendApiTestWithTestdata.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/compiler/based/FrontendApiTestWithTestdata.kt @@ -34,6 +34,7 @@ import org.jetbrains.kotlin.idea.fir.low.level.api.test.base.DeclarationProvider import org.jetbrains.kotlin.idea.fir.low.level.api.test.base.KotlinOutOfBlockModificationTrackerFactoryTestImpl import org.jetbrains.kotlin.idea.fir.low.level.api.test.base.KtPackageProviderTestImpl import org.jetbrains.kotlin.idea.fir.low.level.api.test.base.SealedClassInheritorsProviderTestImpl +import org.jetbrains.kotlin.idea.fir.low.level.api.transformers.FirLazyTransformerForIDE import org.jetbrains.kotlin.load.kotlin.PackagePartProvider import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.platform.TargetPlatform @@ -129,7 +130,13 @@ abstract class FrontendApiTestWithTestdata : AbstractKotlinCompilerTest() { if (ignoreTest(filePath, configuration)) { return } - super.runTest(filePath) + val oldEnableDeepEnsure = FirLazyTransformerForIDE.enableDeepEnsure + try { + FirLazyTransformerForIDE.enableDeepEnsure = true + super.runTest(filePath) + } finally { + FirLazyTransformerForIDE.enableDeepEnsure = oldEnableDeepEnsure + } } private fun ignoreTest(filePath: String, configuration: TestConfiguration): Boolean { diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/renderer/ConeTypeIdeRenderer.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/renderer/ConeTypeIdeRenderer.kt index c1d8ddfc84e..de2fe6d2e60 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/renderer/ConeTypeIdeRenderer.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/renderer/ConeTypeIdeRenderer.kt @@ -21,7 +21,6 @@ import org.jetbrains.kotlin.idea.asJava.applyIf import org.jetbrains.kotlin.idea.fir.low.level.api.api.tryCollectDesignation import org.jetbrains.kotlin.idea.frontend.api.components.KtTypeRendererOptions import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.idea.util.ifTrue import org.jetbrains.kotlin.name.StandardClassIds import org.jetbrains.kotlin.renderer.render @@ -201,7 +200,7 @@ internal class ConeTypeIdeRenderer( else -> error("Invalid declaration ${declaration.renderWithType()}") } ?: return listOf(declaration) - return containingClass.isLocal.ifTrue { containingClass.collectForLocal().reversed() } + return if(containingClass.isLocal) { containingClass.collectForLocal().reversed() } else null } private fun StringBuilder.renderTypeConstructorAndArguments(type: ConeClassLikeType) { diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirTypeAndAnnotations.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirTypeAndAnnotations.kt index db0031f818d..a5fdfd90521 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirTypeAndAnnotations.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirTypeAndAnnotations.kt @@ -18,7 +18,6 @@ import org.jetbrains.kotlin.idea.frontend.api.fir.utils.weakRef import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtAnnotationCall import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtTypeAndAnnotations import org.jetbrains.kotlin.idea.frontend.api.types.KtType -import org.jetbrains.kotlin.idea.util.ifTrue internal class KtFirTypeAndAnnotations( private val containingDeclaration: FirRefWithValidityCheck, @@ -65,9 +64,9 @@ internal fun FirRefWithValidityCheck>.superTypesAndAnnotationsList(b internal fun FirRefWithValidityCheck.superTypesAndAnnotationsListForRegularClass(builder: KtSymbolByFirBuilder): List { return withFir { fir -> - (fir.resolvePhase >= FirResolvePhase.SUPER_TYPES).ifTrue { + if(fir.resolvePhase >= FirResolvePhase.SUPER_TYPES) { fir.superTypeRefs.mapToTypeAndAnnotations(this, builder) - } + } else null } ?: withFirWithPossibleResolveInside(ResolveType.NoResolve) { fir -> fir.resolveSupertypesInTheAir(builder.rootSession).mapToTypeAndAnnotations(this, builder) }