summaryrefslogtreecommitdiff
path: root/plugins/kotlin/fir-low-level-api-ide-impl/test/org/jetbrains/kotlin/idea
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/kotlin/fir-low-level-api-ide-impl/test/org/jetbrains/kotlin/idea')
-rw-r--r--plugins/kotlin/fir-low-level-api-ide-impl/test/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractFirLibraryModuleDeclarationResolveTest.kt16
-rw-r--r--plugins/kotlin/fir-low-level-api-ide-impl/test/org/jetbrains/kotlin/idea/fir/low/level/api/FirLibraryModuleDeclarationResolveTestGenerated.java6
-rw-r--r--plugins/kotlin/fir-low-level-api-ide-impl/test/org/jetbrains/kotlin/idea/fir/low/level/api/firTestUtils.kt8
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)