diff options
Diffstat (limited to 'plugins/kotlin/fir-low-level-api-ide-impl/test/org/jetbrains/kotlin/idea')
3 files changed, 17 insertions, 13 deletions
diff --git a/plugins/kotlin/fir-low-level-api-ide-impl/test/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractFirLibraryModuleDeclarationResolveTest.kt b/plugins/kotlin/fir-low-level-api-ide-impl/test/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractFirLibraryModuleDeclarationResolveTest.kt index 25f9edb9b20c..4e57b3d6e510 100644 --- a/plugins/kotlin/fir-low-level-api-ide-impl/test/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractFirLibraryModuleDeclarationResolveTest.kt +++ b/plugins/kotlin/fir-low-level-api-ide-impl/test/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractFirLibraryModuleDeclarationResolveTest.kt @@ -5,10 +5,11 @@ package org.jetbrains.kotlin.idea.fir.low.level.api import com.intellij.testFramework.LightProjectDescriptor -import org.jetbrains.kotlin.analysis.low.level.api.fir.api.withFirDeclaration +import org.jetbrains.kotlin.analysis.low.level.api.fir.api.resolveToFirSymbol import org.jetbrains.kotlin.fir.FirRenderer import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.render +import org.jetbrains.kotlin.fir.symbols.SymbolInternals import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase import org.jetbrains.kotlin.idea.test.KotlinTestUtils import org.jetbrains.kotlin.idea.test.SdkAndMockLibraryProjectDescriptor @@ -33,13 +34,18 @@ abstract class AbstractFirLibraryModuleDeclarationResolveTest : KotlinLightCodeI * Compiled PSI-elements might come from indices, for example, and we need to be able to work with them * and to resolve them to FIR declarations. */ + @OptIn(SymbolInternals::class) fun doTest(path: String) { val testDataFile = File(path) val expectedFile = File(path.removeSuffix(".kt") + ".txt") val ktFile = myFixture.configureByFile(testDataFile.name) as KtFile - val caretResolutionTarget = myFixture.elementAtCaret + val caretResolutionTarget = ktFile.findReferenceAt(myFixture.caretOffset)?.resolve() + + require(caretResolutionTarget != null) { + "No reference at caret." + } require(caretResolutionTarget is KtDeclaration) { "Element at caret should be referencing some declaration, but referenced ${caretResolutionTarget::class} instead" @@ -48,10 +54,8 @@ abstract class AbstractFirLibraryModuleDeclarationResolveTest : KotlinLightCodeI // We intentionally use ktFile here as a context element, because resolving // from compiled PSI-elements (e.g. caretResolutionTarget) is not yet supported resolveWithClearCaches(ktFile) { resolveState -> - val renderedDeclaration = caretResolutionTarget.withFirDeclaration(resolveState, FirResolvePhase.TYPES) { firDeclaration -> - firDeclaration.render(FirRenderer.RenderMode.WithResolvePhases) - } - + val firSymbol = caretResolutionTarget.resolveToFirSymbol(resolveState, FirResolvePhase.TYPES) + val renderedDeclaration = firSymbol.fir.render(FirRenderer.RenderMode.WithResolvePhases) KotlinTestUtils.assertEqualsToFile(expectedFile, renderedDeclaration) } } diff --git a/plugins/kotlin/fir-low-level-api-ide-impl/test/org/jetbrains/kotlin/idea/fir/low/level/api/FirLibraryModuleDeclarationResolveTestGenerated.java b/plugins/kotlin/fir-low-level-api-ide-impl/test/org/jetbrains/kotlin/idea/fir/low/level/api/FirLibraryModuleDeclarationResolveTestGenerated.java index a73cd36f7316..6936b740619f 100644 --- a/plugins/kotlin/fir-low-level-api-ide-impl/test/org/jetbrains/kotlin/idea/fir/low/level/api/FirLibraryModuleDeclarationResolveTestGenerated.java +++ b/plugins/kotlin/fir-low-level-api-ide-impl/test/org/jetbrains/kotlin/idea/fir/low/level/api/FirLibraryModuleDeclarationResolveTestGenerated.java @@ -1,4 +1,4 @@ -// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package org.jetbrains.kotlin.idea.fir.low.level.api; @@ -9,8 +9,8 @@ import org.jetbrains.kotlin.test.TestMetadata; import org.jetbrains.kotlin.idea.test.TestRoot; import org.junit.runner.RunWith; -/* - * This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestsPackage}. +/** + * This class is generated by {@link org.jetbrains.kotlin.testGenerator.generator.TestGenerator}. * DO NOT MODIFY MANUALLY. */ @SuppressWarnings("all") diff --git a/plugins/kotlin/fir-low-level-api-ide-impl/test/org/jetbrains/kotlin/idea/fir/low/level/api/firTestUtils.kt b/plugins/kotlin/fir-low-level-api-ide-impl/test/org/jetbrains/kotlin/idea/fir/low/level/api/firTestUtils.kt index a2f8631bcf65..7feb38ecf9f3 100644 --- a/plugins/kotlin/fir-low-level-api-ide-impl/test/org/jetbrains/kotlin/idea/fir/low/level/api/firTestUtils.kt +++ b/plugins/kotlin/fir-low-level-api-ide-impl/test/org/jetbrains/kotlin/idea/fir/low/level/api/firTestUtils.kt @@ -2,16 +2,16 @@ package org.jetbrains.kotlin.idea.fir.low.level.api -import org.jetbrains.kotlin.analysis.low.level.api.fir.api.FirModuleResolveState +import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirModuleResolveState import org.jetbrains.kotlin.analysis.low.level.api.fir.createResolveStateForNoCaching -import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.FirIdeSession +import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirSession import org.jetbrains.kotlin.analysis.project.structure.getKtModule import org.jetbrains.kotlin.psi.KtElement internal inline fun <R> resolveWithClearCaches( context: KtElement, - noinline configureSession: FirIdeSession.() -> Unit = {}, - action: (FirModuleResolveState) -> R, + noinline configureSession: LLFirSession.() -> Unit = {}, + action: (LLFirModuleResolveState) -> R, ): R { val project = context.project val resolveState = createResolveStateForNoCaching(context.getKtModule(project), project, configureSession) |