[kotlin] extract k1 independent* test module

KTIJ-36178

GitOrigin-RevId: dfe4a9aae4b940a9cf96cf3361265f475dc04f64
This commit is contained in:
Anna Kozlova
2025-12-03 13:10:40 +00:00
committed by intellij-monorepo-bot
parent a891fa1237
commit c358db2629
67 changed files with 1232 additions and 894 deletions
+1
View File
@@ -660,6 +660,7 @@
<module fileurl="file://$PROJECT_DIR$/plugins/kotlin/base/scripting/scripting.shared/intellij.kotlin.base.scripting.shared.iml" filepath="$PROJECT_DIR$/plugins/kotlin/base/scripting/scripting.shared/intellij.kotlin.base.scripting.shared.iml" />
<module fileurl="file://$PROJECT_DIR$/plugins/kotlin/base/kotlin.base.serialization/intellij.kotlin.base.serialization.iml" filepath="$PROJECT_DIR$/plugins/kotlin/base/kotlin.base.serialization/intellij.kotlin.base.serialization.iml" />
<module fileurl="file://$PROJECT_DIR$/plugins/kotlin/base/statistics/intellij.kotlin.base.statistics.iml" filepath="$PROJECT_DIR$/plugins/kotlin/base/statistics/intellij.kotlin.base.statistics.iml" />
<module fileurl="file://$PROJECT_DIR$/plugins/kotlin/intellij.kotlin.base.test/intellij.kotlin.base.test.iml" filepath="$PROJECT_DIR$/plugins/kotlin/intellij.kotlin.base.test/intellij.kotlin.base.test.iml" />
<module fileurl="file://$PROJECT_DIR$/plugins/kotlin/base/util/intellij.kotlin.base.util.iml" filepath="$PROJECT_DIR$/plugins/kotlin/base/util/intellij.kotlin.base.util.iml" />
<module fileurl="file://$PROJECT_DIR$/plugins/kotlin/code-insight/kotlin.code-insight.k2/intellij.kotlin.codeInsight.iml" filepath="$PROJECT_DIR$/plugins/kotlin/code-insight/kotlin.code-insight.k2/intellij.kotlin.codeInsight.iml" />
<module fileurl="file://$PROJECT_DIR$/plugins/kotlin/code-insight/api/intellij.kotlin.codeInsight.api.iml" filepath="$PROJECT_DIR$/plugins/kotlin/code-insight/api/intellij.kotlin.codeInsight.api.iml" />
+1
View File
@@ -1202,6 +1202,7 @@ plugins/kotlin/injection/k2
plugins/kotlin/injection/k2/tests
plugins/kotlin/inspections
plugins/kotlin/inspections-fe10
plugins/kotlin/intellij.kotlin.base.test
plugins/kotlin/internal
plugins/kotlin/j2k/k1.new
plugins/kotlin/j2k/k1.new.post-processing
+1
View File
@@ -66,6 +66,7 @@ jvm_library(
"//plugins/kotlin/gradle/scripting/kotlin.gradle.scripting.k2:kotlin-gradle-scripting",
"//plugins/kotlin/base/scripting/scripting.k2:kotlin-base-scripting",
"//plugins/kotlin/grazie/intellij.kotlin.grazie.tests:kotlin-grazie-tests",
"//plugins/kotlin/intellij.kotlin.base.test:base-test",
]
)
### auto-generated section `build kotlin.fir-all-tests` end
@@ -66,5 +66,6 @@
<orderEntry type="module" module-name="intellij.kotlin.gradle.scripting" scope="RUNTIME" />
<orderEntry type="module" module-name="intellij.kotlin.base.scripting" scope="RUNTIME" />
<orderEntry type="module" module-name="intellij.kotlin.grazie.tests" scope="RUNTIME" />
<orderEntry type="module" module-name="intellij.kotlin.base.test" scope="RUNTIME" />
</component>
</module>
+1
View File
@@ -78,6 +78,7 @@ jvm_library(
"//jvm/jvm-analysis-kotlin-tests-k1:analysis-kotlin-tests-k1",
"//plugins/kotlin/compiler-plugins/compiler-plugin-support/tests",
"//plugins/kotlin/uast/uast-kotlin-idea-base/tests",
"//plugins/kotlin/intellij.kotlin.base.test:base-test",
]
)
### auto-generated section `build kotlin.all-tests` end
@@ -78,5 +78,6 @@
<orderEntry type="module" module-name="intellij.jvm.analysis.kotlin.tests.k1" scope="RUNTIME" />
<orderEntry type="module" module-name="kotlin.compiler-plugins.compiler-plugin-support.tests" />
<orderEntry type="module" module-name="kotlin.uast.uast-kotlin-idea-base.tests" scope="RUNTIME" />
<orderEntry type="module" module-name="intellij.kotlin.base.test" scope="RUNTIME" />
</component>
</module>
@@ -2,10 +2,10 @@ package org.jetbrains.kotlin.idea.codeInsight.inspections.shared
import com.intellij.codeInsight.daemon.impl.HighlightInfo
import org.jetbrains.kotlin.idea.caches.resolve.analyzeWithAllCompilerChecks
import org.jetbrains.kotlin.idea.inspections.AbstractLocalInspectionTest
import org.jetbrains.kotlin.idea.inspections.AbstractK1LocalInspectionTest
import org.jetbrains.kotlin.psi.KtFile
abstract class AbstractSharedK1LocalInspectionTest : AbstractLocalInspectionTest() {
abstract class AbstractSharedK1LocalInspectionTest : AbstractK1LocalInspectionTest() {
override fun collectHighlightInfos(): List<HighlightInfo> {
(file as KtFile).analyzeWithAllCompilerChecks()
@@ -31,6 +31,8 @@ jvm_library(
"//plugins/kotlin/code-insight/line-markers:line-markers_test_lib",
"//plugins/kotlin/base/plugin",
"//plugins/kotlin/base/plugin:plugin_test_lib",
"//plugins/kotlin/test-framework:test-framework_test_lib",
"//plugins/kotlin/fir/tests:tests_test_lib",
]
)
### auto-generated section `build intellij.kotlin.compilerReferenceIndex.tests` end
@@ -22,5 +22,7 @@
<orderEntry type="module" module-name="kotlin.tests-common" scope="TEST" />
<orderEntry type="module" module-name="intellij.kotlin.codeInsight.lineMarkers" scope="TEST" />
<orderEntry type="module" module-name="intellij.kotlin.base.plugin" scope="TEST" />
<orderEntry type="module" module-name="kotlin.test-framework" scope="TEST" />
<orderEntry type="module" module-name="kotlin.fir.tests" scope="TEST" />
</component>
</module>
@@ -1,8 +1,12 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.kotlin.idea.fir.search.refIndex
import org.jetbrains.kotlin.idea.fir.findUsages.k2DiagnosticProviderForFindUsages
import org.jetbrains.kotlin.idea.search.refIndex.AbstractFindUsagesWithCompilerReferenceIndexTest
import org.jetbrains.kotlin.idea.test.Diagnostic
import org.jetbrains.kotlin.psi.KtFile
abstract class AbstractFindUsagesWithCompilerReferenceIndexFirTest : AbstractFindUsagesWithCompilerReferenceIndexTest() {
override val ignoreLog: Boolean get() = true
override fun getDiagnosticProvider(): (KtFile) -> List<Diagnostic> = k2DiagnosticProviderForFindUsages()
}
@@ -51,6 +51,7 @@ jvm_library(
"//plugins/kotlin/base/compiler-configuration",
"//plugins/kotlin/test-framework:test-framework_test_lib",
"//platform/util",
"//plugins/kotlin/intellij.kotlin.base.test:base-test_test_lib",
]
)
### auto-generated section `build kotlin.compiler-reference-index.tests` end
@@ -43,5 +43,6 @@
<orderEntry type="module" module-name="intellij.kotlin.base.compilerConfiguration" scope="TEST" />
<orderEntry type="module" module-name="kotlin.test-framework" scope="TEST" />
<orderEntry type="module" module-name="intellij.platform.util" scope="TEST" />
<orderEntry type="module" module-name="intellij.kotlin.base.test" scope="TEST" />
</component>
</module>
@@ -9,11 +9,20 @@ import com.intellij.testFramework.builders.JavaModuleFixtureBuilder
import org.jetbrains.kotlin.findUsages.AbstractFindUsagesTest
import org.jetbrains.kotlin.findUsages.AbstractFindUsagesTest.Companion.FindUsageTestType
import org.jetbrains.kotlin.findUsages.KotlinFindUsageConfigurator
import org.jetbrains.kotlin.findUsages.k1DiagnosticProviderForFindUsages
import org.jetbrains.kotlin.idea.base.plugin.KotlinPluginMode
import org.jetbrains.kotlin.idea.test.Diagnostic
import org.jetbrains.kotlin.idea.test.TestMetadataUtil
import org.jetbrains.kotlin.idea.test.kmp.KMPTestPlatform
import org.jetbrains.kotlin.psi.KtFile
import java.io.File
abstract class AbstractK1FindUsagesWithCompilerReferenceIndexTest : AbstractFindUsagesWithCompilerReferenceIndexTest() {
override fun getDiagnosticProvider(): (KtFile) -> List<Diagnostic> {
return k1DiagnosticProviderForFindUsages()
}
}
abstract class AbstractFindUsagesWithCompilerReferenceIndexTest : KotlinCompilerReferenceTestBase() {
override fun tuneFixture(moduleBuilder: JavaModuleFixtureBuilder<*>) {
super.tuneFixture(moduleBuilder)
@@ -25,6 +34,8 @@ abstract class AbstractFindUsagesWithCompilerReferenceIndexTest : KotlinCompiler
override fun getTestDataPath(): String = File(TestMetadataUtil.getTestDataPath(javaClass)).path
abstract fun getDiagnosticProvider(): (KtFile) -> List<Diagnostic>
protected fun doTest(path: String) {
val isFir = pluginMode == KotlinPluginMode.K2
val criType = if (isFir) FindUsageTestType.FIR_CRI else FindUsageTestType.CRI
@@ -32,6 +43,9 @@ abstract class AbstractFindUsagesWithCompilerReferenceIndexTest : KotlinCompiler
AbstractFindUsagesTest.doFindUsageTest<PsiElement>(
path,
configurator = KotlinFindUsageConfigurator.fromFixture(myFixture),
testType = criType,
ignoreLog = ignoreLog,
testPlatform = KMPTestPlatform.Unspecified,
executionWrapper = { findUsageTest ->
findUsageTest(if (isFir) FindUsageTestType.FIR else FindUsageTestType.DEFAULT)
@@ -39,9 +53,7 @@ abstract class AbstractFindUsagesWithCompilerReferenceIndexTest : KotlinCompiler
rebuildProject()
findUsageTest(criType)
},
ignoreLog = ignoreLog,
testPlatform = KMPTestPlatform.Unspecified,
testType = criType,
diagnosticProvider = getDiagnosticProvider(),
)
}.fold(
onSuccess = {},
@@ -52,4 +64,5 @@ abstract class AbstractFindUsagesWithCompilerReferenceIndexTest : KotlinCompiler
},
)
}
}
+1
View File
@@ -100,6 +100,7 @@ jvm_library(
"//java/java-runtime:rt",
"//plugins/kotlin/kotlin.searching",
"//plugins/kotlin/run-configurations/junit",
"//plugins/kotlin/intellij.kotlin.base.test:base-test_test_lib",
]
)
### auto-generated section `build kotlin.fir.tests` end
@@ -90,5 +90,6 @@
<orderEntry type="module" module-name="intellij.java.rt" scope="TEST" />
<orderEntry type="module" module-name="intellij.kotlin.searching" scope="TEST" />
<orderEntry type="module" module-name="intellij.kotlin.runConfigurations.junit" scope="TEST" />
<orderEntry type="module" module-name="intellij.kotlin.base.test" scope="TEST" />
</component>
</module>
@@ -3,14 +3,27 @@
package org.jetbrains.kotlin.idea.fir.findUsages
import com.intellij.testFramework.LightProjectDescriptor
import org.jetbrains.kotlin.analysis.api.analyze
import org.jetbrains.kotlin.analysis.api.components.KaDiagnosticCheckerFilter
import org.jetbrains.kotlin.analysis.api.diagnostics.KaSeverity
import org.jetbrains.kotlin.analysis.api.permissions.KaAllowAnalysisOnEdt
import org.jetbrains.kotlin.analysis.api.permissions.allowAnalysisOnEdt
import org.jetbrains.kotlin.diagnostics.Severity
import org.jetbrains.kotlin.findUsages.AbstractFindUsagesTest
import org.jetbrains.kotlin.idea.fir.invalidateCaches
import org.jetbrains.kotlin.idea.test.Diagnostic
import org.jetbrains.kotlin.idea.test.kmp.KMPProjectDescriptorTestUtilities
import org.jetbrains.kotlin.idea.test.kmp.KMPTest
import org.jetbrains.kotlin.idea.test.runAll
import org.jetbrains.kotlin.psi.KtFile
abstract class AbstractFindUsagesFirTest : AbstractFindUsagesTest(), KMPTest {
@OptIn(KaAllowAnalysisOnEdt::class)
override fun getDiagnosticProvider(): (KtFile) -> List<Diagnostic> {
return k2DiagnosticProviderForFindUsages()
}
override fun getProjectDescriptor(): LightProjectDescriptor {
return KMPProjectDescriptorTestUtilities.createKMPProjectDescriptor(testPlatform)
?: super.getProjectDescriptor()
@@ -25,4 +38,29 @@ abstract class AbstractFindUsagesFirTest : AbstractFindUsagesTest(), KMPTest {
{ super.tearDown() },
)
}
}
@OptIn(KaAllowAnalysisOnEdt::class)
fun k2DiagnosticProviderForFindUsages(): (KtFile) -> List<Diagnostic> {
return { file ->
allowAnalysisOnEdt {
analyze(file) {
val diagnostics =
// filter level has to be consistent with
// [org.jetbrains.kotlin.idea.highlighting.visitor.KotlinDiagnosticHighlightVisitor#analyzeFile]
file.collectDiagnostics(KaDiagnosticCheckerFilter.ONLY_COMMON_CHECKERS)
diagnostics
.map {
Diagnostic(
it.defaultMessage.replace("\n", "<br>"),
when (it.severity) {
KaSeverity.ERROR -> Severity.ERROR
KaSeverity.WARNING -> Severity.WARNING
KaSeverity.INFO -> Severity.INFO
}
)
}
}
}
}
}
@@ -2,11 +2,13 @@
package org.jetbrains.kotlin.idea.fir.findUsages
import org.jetbrains.kotlin.findUsages.AbstractFindUsagesMultiModuleTest
import org.jetbrains.kotlin.findUsages.AbstractFindUsagesTest
import org.jetbrains.kotlin.idea.base.test.IgnoreTests
import org.jetbrains.kotlin.idea.fir.invalidateCaches
import org.jetbrains.kotlin.idea.test.runAll
abstract class AbstractFindUsagesMultiModuleFirTest : AbstractFindUsagesMultiModuleTest() {
override fun getTestType(): AbstractFindUsagesTest.Companion.FindUsageTestType = AbstractFindUsagesTest.Companion.FindUsageTestType.FIR
override fun tearDown() {
runAll(
@@ -4,12 +4,16 @@ package org.jetbrains.kotlin.idea.fir.findUsages
import org.jetbrains.kotlin.findUsages.AbstractFindUsagesWithDisableComponentSearchTest
import org.jetbrains.kotlin.idea.fir.invalidateCaches
import org.jetbrains.kotlin.idea.test.Diagnostic
import org.jetbrains.kotlin.idea.test.runAll
import org.jetbrains.kotlin.psi.KtFile
abstract class AbstractFindUsagesWithDisableComponentSearchFirTest : AbstractFindUsagesWithDisableComponentSearchTest() {
override val ignoreLog: Boolean get() = true
override fun getDiagnosticProvider(): (KtFile) -> List<Diagnostic> = k2DiagnosticProviderForFindUsages()
override fun tearDown() {
runAll(
{ project.invalidateCaches() },
@@ -4,10 +4,14 @@ package org.jetbrains.kotlin.idea.fir.findUsages
import org.jetbrains.kotlin.findUsages.AbstractKotlinFindUsagesWithLibraryTest
import org.jetbrains.kotlin.idea.fir.invalidateCaches
import org.jetbrains.kotlin.idea.test.Diagnostic
import org.jetbrains.kotlin.idea.test.runAll
import org.jetbrains.kotlin.psi.KtFile
abstract class AbstractKotlinFindUsagesWithLibraryFirTest : AbstractKotlinFindUsagesWithLibraryTest() {
override fun getDiagnosticProvider(): (KtFile) -> List<Diagnostic> = k2DiagnosticProviderForFindUsages()
override fun tearDown() {
runAll(
{ project.invalidateCaches() },
@@ -4,9 +4,12 @@ package org.jetbrains.kotlin.idea.fir.findUsages
import org.jetbrains.kotlin.findUsages.AbstractKotlinFindUsagesWithStdlibTest
import org.jetbrains.kotlin.idea.fir.invalidateCaches
import org.jetbrains.kotlin.idea.test.Diagnostic
import org.jetbrains.kotlin.idea.test.runAll
import org.jetbrains.kotlin.psi.KtFile
abstract class AbstractKotlinFindUsagesWithStdlibFirTest : AbstractKotlinFindUsagesWithStdlibTest() {
override fun getDiagnosticProvider(): (KtFile) -> List<Diagnostic> = k2DiagnosticProviderForFindUsages()
override fun tearDown() {
runAll(
@@ -3,11 +3,15 @@ package org.jetbrains.kotlin.idea.fir.findUsages
import org.jetbrains.kotlin.findUsages.AbstractKotlinGroupUsagesBySimilarityFeaturesTest
import org.jetbrains.kotlin.idea.fir.invalidateCaches
import org.jetbrains.kotlin.idea.test.Diagnostic
import org.jetbrains.kotlin.idea.test.runAll
import org.jetbrains.kotlin.psi.KtFile
abstract class AbstractKotlinGroupUsagesBySimilarityFeaturesFirTest : AbstractKotlinGroupUsagesBySimilarityFeaturesTest() {
override fun getDiagnosticProvider(): (KtFile) -> List<Diagnostic> = k2DiagnosticProviderForFindUsages()
override fun tearDown() {
runAll(
{ project.invalidateCaches() },
@@ -3,10 +3,14 @@ package org.jetbrains.kotlin.idea.fir.findUsages
import org.jetbrains.kotlin.findUsages.AbstractKotlinGroupUsagesBySimilarityTest
import org.jetbrains.kotlin.idea.fir.invalidateCaches
import org.jetbrains.kotlin.idea.test.Diagnostic
import org.jetbrains.kotlin.idea.test.runAll
import org.jetbrains.kotlin.psi.KtFile
abstract class AbstractKotlinGroupUsagesBySimilarityFirTest : AbstractKotlinGroupUsagesBySimilarityTest() {
override fun getDiagnosticProvider(): (KtFile) -> List<Diagnostic> = k2DiagnosticProviderForFindUsages()
override fun tearDown() {
runAll(
{ project.invalidateCaches() },
@@ -3,10 +3,14 @@ package org.jetbrains.kotlin.idea.fir.findUsages
import org.jetbrains.kotlin.findUsages.AbstractKotlinScriptFindUsagesTest
import org.jetbrains.kotlin.idea.fir.invalidateCaches
import org.jetbrains.kotlin.idea.test.Diagnostic
import org.jetbrains.kotlin.idea.test.runAll
import org.jetbrains.kotlin.psi.KtFile
abstract class AbstractKotlinScriptFindUsagesFirTest : AbstractKotlinScriptFindUsagesTest() {
override fun getDiagnosticProvider(): (KtFile) -> List<Diagnostic> = k2DiagnosticProviderForFindUsages()
override fun tearDown() {
runAll(
{ project.invalidateCaches() },
+2
View File
@@ -194,7 +194,9 @@ jvm_library(
"//plugins/IntelliLang/backend",
"//plugins/kotlin/base/scripting/scripting.shared",
"@lib//:jet_check",
"//plugins/kotlin/intellij.kotlin.base.test:base-test_test_lib",
],
exports = ["//plugins/kotlin/intellij.kotlin.base.test:base-test_test_lib"],
runtime_deps = [
"//plugins/kotlin/gradle/gradle",
"//plugins/kotlin/compiler-plugins/sam-with-receiver/common",
@@ -191,5 +191,6 @@
<orderEntry type="module" module-name="intellij.platform.langInjection.backend" scope="TEST" />
<orderEntry type="module" module-name="intellij.kotlin.base.scripting.shared" scope="TEST" />
<orderEntry type="library" scope="TEST" name="jetCheck" level="project" />
<orderEntry type="module" module-name="intellij.kotlin.base.test" exported="" scope="TEST" />
</component>
</module>
@@ -13,11 +13,14 @@ import com.intellij.psi.PsiDocumentManager
import com.intellij.testFramework.fixtures.JavaCodeInsightTestFixture
import com.intellij.util.ThrowableRunnable
import junit.framework.TestCase
import org.jetbrains.kotlin.diagnostics.rendering.DefaultErrorMessages
import org.jetbrains.kotlin.idea.base.test.InTextDirectivesUtils
import org.jetbrains.kotlin.idea.caches.resolve.analyzeWithAllCompilerChecks
import org.jetbrains.kotlin.idea.codeInsight.AbstractOutOfBlockModificationTest
import org.jetbrains.kotlin.idea.test.Diagnostic
import org.jetbrains.kotlin.idea.test.DirectiveBasedActionUtils.checkForUnexpectedErrors
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
import org.jetbrains.kotlin.idea.test.mapFromK1Provider
import org.jetbrains.kotlin.idea.test.runAll
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics
@@ -55,7 +58,7 @@ abstract class AbstractKotlinHighlightWolfPassTest: KotlinLightCodeInsightFixtur
myFixture.doHighlighting()
// have to analyze file before any change to support incremental analysis
val diagnosticsProvider: (KtFile) -> Diagnostics = { it.analyzeWithAllCompilerChecks().bindingContext.diagnostics }
checkForUnexpectedErrors(ktFile, diagnosticsProvider = diagnosticsProvider)
checkForUnexpectedErrors(ktFile, diagnosticsProvider = mapFromK1Provider(diagnosticsProvider))
val wolf = WolfTheProblemSolver.getInstance(project)
val virtualFile = ktFile.virtualFile
val initialWolfErrors = wolfErrors(myFixture)
@@ -0,0 +1,12 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.kotlin.findUsages
import org.jetbrains.kotlin.findUsages.AbstractFindUsagesTest.Companion.FindUsageTestType
abstract class AbstractK1FindUsagesMultiModuleTest: AbstractFindUsagesMultiModuleTest() {
override fun getTestType(): FindUsageTestType {
return FindUsageTestType.DEFAULT
}
}
@@ -0,0 +1,16 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.kotlin.findUsages
import org.jetbrains.kotlin.idea.caches.resolve.analyzeWithAllCompilerChecks
import org.jetbrains.kotlin.idea.core.script.k1.ScriptConfigurationManager
import org.jetbrains.kotlin.idea.test.Diagnostic
import org.jetbrains.kotlin.idea.test.mapFromK1Provider
import org.jetbrains.kotlin.psi.KtFile
abstract class AbstractK1FindUsagesTest : AbstractFindUsagesTest() {
override fun getDiagnosticProvider(): (KtFile) -> List<Diagnostic> {
return k1DiagnosticProviderForFindUsages()
}
}
fun k1DiagnosticProviderForFindUsages() = mapFromK1Provider { it: KtFile -> it.analyzeWithAllCompilerChecks().bindingContext.diagnostics }
@@ -0,0 +1,11 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.kotlin.findUsages
import org.jetbrains.kotlin.idea.test.Diagnostic
import org.jetbrains.kotlin.psi.KtFile
abstract class AbstractK1FindUsagesWithDisableComponentSearchTest : AbstractFindUsagesWithDisableComponentSearchTest() {
override fun getDiagnosticProvider(): (KtFile) -> List<Diagnostic> {
return k1DiagnosticProviderForFindUsages()
}
}
@@ -0,0 +1,12 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.kotlin.findUsages
import org.jetbrains.kotlin.idea.test.Diagnostic
import org.jetbrains.kotlin.psi.KtFile
abstract class AbstractK1KotlinFindUsagesWithLibraryTest : AbstractKotlinFindUsagesWithLibraryTest() {
override fun getDiagnosticProvider(): (KtFile) -> List<Diagnostic> {
return k1DiagnosticProviderForFindUsages()
}
}
@@ -0,0 +1,12 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.kotlin.findUsages
import org.jetbrains.kotlin.idea.test.Diagnostic
import org.jetbrains.kotlin.psi.KtFile
abstract class AbstractK1KotlinFindUsagesWithStdlibTest : AbstractKotlinFindUsagesWithStdlibTest() {
override fun getDiagnosticProvider(): (KtFile) -> List<Diagnostic> {
return k1DiagnosticProviderForFindUsages()
}
}
@@ -0,0 +1,11 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.kotlin.findUsages
import org.jetbrains.kotlin.idea.test.Diagnostic
import org.jetbrains.kotlin.psi.KtFile
abstract class AbstractK1KotlinGroupUsagesBySimilarityFeaturesTest : AbstractKotlinGroupUsagesBySimilarityFeaturesTest() {
override fun getDiagnosticProvider(): (KtFile) -> List<Diagnostic> {
return k1DiagnosticProviderForFindUsages()
}
}
@@ -0,0 +1,11 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.kotlin.findUsages
import org.jetbrains.kotlin.idea.test.Diagnostic
import org.jetbrains.kotlin.psi.KtFile
abstract class AbstractK1KotlinGroupUsagesBySimilarityTest : AbstractKotlinGroupUsagesBySimilarityTest() {
override fun getDiagnosticProvider(): (KtFile) -> List<Diagnostic> {
return k1DiagnosticProviderForFindUsages()
}
}
@@ -0,0 +1,20 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.kotlin.findUsages
import com.intellij.psi.PsiFile
import org.jetbrains.kotlin.idea.core.script.k1.ScriptConfigurationManager
import org.jetbrains.kotlin.idea.test.Diagnostic
import org.jetbrains.kotlin.psi.KtFile
abstract class AbstractK1KotlinScriptFindUsagesTest : AbstractKotlinScriptFindUsagesTest() {
override fun getDiagnosticProvider(): (KtFile) -> List<Diagnostic> {
return k1DiagnosticProviderForFindUsages()
}
override fun updateScripts(file: PsiFile) {
ScriptConfigurationManager.updateScriptDependenciesSynchronously(file)
}
}
class Foo
fun Foo.bar() = println("Hello")
@@ -19,7 +19,7 @@ import org.junit.runner.RunWith;
@TestDataPath("$CONTENT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/multiModuleFindUsages")
public class FindUsagesMultiModuleTestGenerated extends AbstractFindUsagesMultiModuleTest {
public class FindUsagesMultiModuleTestGenerated extends AbstractK1FindUsagesMultiModuleTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -18,13 +18,13 @@ import org.junit.runner.RunWith;
@TestRoot("idea/tests")
@TestDataPath("$CONTENT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public abstract class FindUsagesTestGenerated extends AbstractFindUsagesTest {
public abstract class FindUsagesTestGenerated extends AbstractK1FindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/kotlin")
public abstract static class Kotlin extends AbstractFindUsagesTest {
public abstract static class Kotlin extends AbstractK1FindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/kotlin/companionObject")
public static class CompanionObject extends AbstractFindUsagesTest {
public static class CompanionObject extends AbstractK1FindUsagesTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -83,10 +83,10 @@ public abstract class FindUsagesTestGenerated extends AbstractFindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/kotlin/conventions")
public abstract static class Conventions extends AbstractFindUsagesTest {
public abstract static class Conventions extends AbstractK1FindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/kotlin/conventions/components")
public static class Components extends AbstractFindUsagesTest {
public static class Components extends AbstractK1FindUsagesTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -205,7 +205,7 @@ public abstract class FindUsagesTestGenerated extends AbstractFindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/kotlin/conventions/invoke")
public static class Invoke extends AbstractFindUsagesTest {
public static class Invoke extends AbstractK1FindUsagesTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -239,7 +239,7 @@ public abstract class FindUsagesTestGenerated extends AbstractFindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/kotlin/conventions")
public static class Uncategorized extends AbstractFindUsagesTest {
public static class Uncategorized extends AbstractK1FindUsagesTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -364,7 +364,7 @@ public abstract class FindUsagesTestGenerated extends AbstractFindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/kotlin/findClassUsages")
public static class FindClassUsages extends AbstractFindUsagesTest {
public static class FindClassUsages extends AbstractK1FindUsagesTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -673,7 +673,7 @@ public abstract class FindUsagesTestGenerated extends AbstractFindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/kotlin/findEnumEntryUsages")
public static class FindEnumEntryUsages extends AbstractFindUsagesTest {
public static class FindEnumEntryUsages extends AbstractK1FindUsagesTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -692,7 +692,7 @@ public abstract class FindUsagesTestGenerated extends AbstractFindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/kotlin/findFunctionUsages")
public static class FindFunctionUsages extends AbstractFindUsagesTest {
public static class FindFunctionUsages extends AbstractK1FindUsagesTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -1016,7 +1016,7 @@ public abstract class FindUsagesTestGenerated extends AbstractFindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/kotlin/findJavaPropertyUsages")
public static class FindJavaPropertyUsages extends AbstractFindUsagesTest {
public static class FindJavaPropertyUsages extends AbstractK1FindUsagesTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -1045,7 +1045,7 @@ public abstract class FindUsagesTestGenerated extends AbstractFindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/kotlin/findObjectUsages")
public static class FindObjectUsages extends AbstractFindUsagesTest {
public static class FindObjectUsages extends AbstractK1FindUsagesTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -1094,7 +1094,7 @@ public abstract class FindUsagesTestGenerated extends AbstractFindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/kotlin/findPackageUsages")
public static class FindPackageUsages extends AbstractFindUsagesTest {
public static class FindPackageUsages extends AbstractK1FindUsagesTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -1113,7 +1113,7 @@ public abstract class FindUsagesTestGenerated extends AbstractFindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/kotlin/findParameterUsages")
public static class FindParameterUsages extends AbstractFindUsagesTest {
public static class FindParameterUsages extends AbstractK1FindUsagesTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -1197,7 +1197,7 @@ public abstract class FindUsagesTestGenerated extends AbstractFindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/kotlin/findPrimaryConstructorUsages")
public static class FindPrimaryConstructorUsages extends AbstractFindUsagesTest {
public static class FindPrimaryConstructorUsages extends AbstractK1FindUsagesTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -1266,7 +1266,7 @@ public abstract class FindUsagesTestGenerated extends AbstractFindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/kotlin/findPropertyUsages")
public static class FindPropertyUsages extends AbstractFindUsagesTest {
public static class FindPropertyUsages extends AbstractK1FindUsagesTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -1460,7 +1460,7 @@ public abstract class FindUsagesTestGenerated extends AbstractFindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/kotlin/findSecondaryConstructorUsages")
public static class FindSecondaryConstructorUsages extends AbstractFindUsagesTest {
public static class FindSecondaryConstructorUsages extends AbstractK1FindUsagesTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -1504,7 +1504,7 @@ public abstract class FindUsagesTestGenerated extends AbstractFindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/kotlin/findTypeAliasUsages")
public static class FindTypeAliasUsages extends AbstractFindUsagesTest {
public static class FindTypeAliasUsages extends AbstractK1FindUsagesTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -1528,7 +1528,7 @@ public abstract class FindUsagesTestGenerated extends AbstractFindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/kotlin/findTypeParameterUsages")
public static class FindTypeParameterUsages extends AbstractFindUsagesTest {
public static class FindTypeParameterUsages extends AbstractK1FindUsagesTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -1562,7 +1562,7 @@ public abstract class FindUsagesTestGenerated extends AbstractFindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/kotlin/findWithFilteringImports")
public static class FindWithFilteringImports extends AbstractFindUsagesTest {
public static class FindWithFilteringImports extends AbstractK1FindUsagesTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -1581,7 +1581,7 @@ public abstract class FindUsagesTestGenerated extends AbstractFindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/kotlin/findWithStructuralGrouping")
public static class FindWithStructuralGrouping extends AbstractFindUsagesTest {
public static class FindWithStructuralGrouping extends AbstractK1FindUsagesTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -1610,10 +1610,10 @@ public abstract class FindUsagesTestGenerated extends AbstractFindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/kotlin/internal")
public abstract static class Internal extends AbstractFindUsagesTest {
public abstract static class Internal extends AbstractK1FindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/kotlin/internal/findFunctionUsages")
public static class FindFunctionUsages extends AbstractFindUsagesTest {
public static class FindFunctionUsages extends AbstractK1FindUsagesTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -1662,7 +1662,7 @@ public abstract class FindUsagesTestGenerated extends AbstractFindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/kotlin/internal/findPrimaryConstructorUsages")
public static class FindPrimaryConstructorUsages extends AbstractFindUsagesTest {
public static class FindPrimaryConstructorUsages extends AbstractK1FindUsagesTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -1686,7 +1686,7 @@ public abstract class FindUsagesTestGenerated extends AbstractFindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/kotlin/internal/findPropertyUsages")
public static class FindPropertyUsages extends AbstractFindUsagesTest {
public static class FindPropertyUsages extends AbstractK1FindUsagesTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -1720,7 +1720,7 @@ public abstract class FindUsagesTestGenerated extends AbstractFindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/kotlin/internal/findSecondaryConstructorUsages")
public static class FindSecondaryConstructorUsages extends AbstractFindUsagesTest {
public static class FindSecondaryConstructorUsages extends AbstractK1FindUsagesTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -1750,7 +1750,7 @@ public abstract class FindUsagesTestGenerated extends AbstractFindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/kotlin/propertyFiles")
public static class PropertyFiles extends AbstractFindUsagesTest {
public static class PropertyFiles extends AbstractK1FindUsagesTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -1774,7 +1774,7 @@ public abstract class FindUsagesTestGenerated extends AbstractFindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/kotlin/unresolvedAnnotation")
public static class UnresolvedAnnotation extends AbstractFindUsagesTest {
public static class UnresolvedAnnotation extends AbstractK1FindUsagesTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -1793,7 +1793,7 @@ public abstract class FindUsagesTestGenerated extends AbstractFindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/kotlin/variable")
public static class Variable extends AbstractFindUsagesTest {
public static class Variable extends AbstractK1FindUsagesTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -1828,10 +1828,10 @@ public abstract class FindUsagesTestGenerated extends AbstractFindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/java")
public abstract static class Java extends AbstractFindUsagesTest {
public abstract static class Java extends AbstractK1FindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/java/findConstructorUsages")
public static class FindConstructorUsages extends AbstractFindUsagesTest {
public static class FindConstructorUsages extends AbstractK1FindUsagesTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -1875,7 +1875,7 @@ public abstract class FindUsagesTestGenerated extends AbstractFindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/java/findJavaClassUsages")
public static class FindJavaClassUsages extends AbstractFindUsagesTest {
public static class FindJavaClassUsages extends AbstractK1FindUsagesTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -1999,7 +1999,7 @@ public abstract class FindUsagesTestGenerated extends AbstractFindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/java/findJavaFieldUsages")
public static class FindJavaFieldUsages extends AbstractFindUsagesTest {
public static class FindJavaFieldUsages extends AbstractK1FindUsagesTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -2028,7 +2028,7 @@ public abstract class FindUsagesTestGenerated extends AbstractFindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/java/findJavaMethodUsages")
public static class FindJavaMethodUsages extends AbstractFindUsagesTest {
public static class FindJavaMethodUsages extends AbstractK1FindUsagesTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -2142,7 +2142,7 @@ public abstract class FindUsagesTestGenerated extends AbstractFindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/java/findJavaPropertyUsages")
public static class FindJavaPropertyUsages extends AbstractFindUsagesTest {
public static class FindJavaPropertyUsages extends AbstractK1FindUsagesTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -2167,7 +2167,7 @@ public abstract class FindUsagesTestGenerated extends AbstractFindUsagesTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/propertyFiles")
public static class PropertyFiles extends AbstractFindUsagesTest {
public static class PropertyFiles extends AbstractK1FindUsagesTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -19,7 +19,7 @@ import org.junit.runner.RunWith;
@TestDataPath("$CONTENT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/kotlin/conventions/components")
public class FindUsagesWithDisableComponentSearchTestGenerated extends AbstractFindUsagesWithDisableComponentSearchTest {
public class FindUsagesWithDisableComponentSearchTestGenerated extends AbstractK1FindUsagesWithDisableComponentSearchTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -12,7 +12,7 @@ import org.junit.internal.runners.JUnit38ClassRunner
import org.junit.runner.RunWith
@RunWith(JUnit38ClassRunner::class)
class KotlinFindUsagesWithLibraryCustomTest : AbstractKotlinFindUsagesWithLibraryTest() {
class KotlinFindUsagesWithLibraryCustomTest : AbstractK1KotlinFindUsagesWithLibraryTest() {
override val isWithSourcesTestData = false
@@ -19,13 +19,13 @@ import org.junit.runner.RunWith;
@TestDataPath("$CONTENT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages")
public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractKotlinFindUsagesWithLibraryTest {
public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractK1KotlinFindUsagesWithLibraryTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/findLibraryFunctionUsages")
public abstract static class FindLibraryFunctionUsages extends AbstractKotlinFindUsagesWithLibraryTest {
public abstract static class FindLibraryFunctionUsages extends AbstractK1KotlinFindUsagesWithLibraryTest {
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/findLibraryFunctionUsages/dataClassComponent")
public static class DataClassComponent extends AbstractKotlinFindUsagesWithLibraryTest {
public static class DataClassComponent extends AbstractK1KotlinFindUsagesWithLibraryTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -44,7 +44,7 @@ public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractK
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/findLibraryFunctionUsages/enumFunctionUsages")
public static class EnumFunctionUsages extends AbstractKotlinFindUsagesWithLibraryTest {
public static class EnumFunctionUsages extends AbstractK1KotlinFindUsagesWithLibraryTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -63,7 +63,7 @@ public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractK
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/findLibraryFunctionUsages/enumValueOf")
public static class EnumValueOf extends AbstractKotlinFindUsagesWithLibraryTest {
public static class EnumValueOf extends AbstractK1KotlinFindUsagesWithLibraryTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -82,7 +82,7 @@ public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractK
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/findLibraryFunctionUsages/functionUsedInPlainText")
public static class FunctionUsedInPlainText extends AbstractKotlinFindUsagesWithLibraryTest {
public static class FunctionUsedInPlainText extends AbstractK1KotlinFindUsagesWithLibraryTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -101,7 +101,7 @@ public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractK
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/findLibraryFunctionUsages/highlightingOfSuperUsages")
public static class HighlightingOfSuperUsages extends AbstractKotlinFindUsagesWithLibraryTest {
public static class HighlightingOfSuperUsages extends AbstractK1KotlinFindUsagesWithLibraryTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -120,7 +120,7 @@ public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractK
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/findLibraryFunctionUsages/interfaceOverrides")
public static class InterfaceOverrides extends AbstractKotlinFindUsagesWithLibraryTest {
public static class InterfaceOverrides extends AbstractK1KotlinFindUsagesWithLibraryTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -139,7 +139,7 @@ public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractK
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/findLibraryFunctionUsages/invokeFromClassCompanion")
public static class InvokeFromClassCompanion extends AbstractKotlinFindUsagesWithLibraryTest {
public static class InvokeFromClassCompanion extends AbstractK1KotlinFindUsagesWithLibraryTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -158,7 +158,7 @@ public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractK
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/findLibraryFunctionUsages/invokeFromClassCompanionExtension")
public static class InvokeFromClassCompanionExtension extends AbstractKotlinFindUsagesWithLibraryTest {
public static class InvokeFromClassCompanionExtension extends AbstractK1KotlinFindUsagesWithLibraryTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -177,7 +177,7 @@ public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractK
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/findLibraryFunctionUsages/invokeFromInterfaceCompanion")
public static class InvokeFromInterfaceCompanion extends AbstractKotlinFindUsagesWithLibraryTest {
public static class InvokeFromInterfaceCompanion extends AbstractK1KotlinFindUsagesWithLibraryTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -196,7 +196,7 @@ public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractK
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/findLibraryFunctionUsages/invokeFromParentCompanionClass")
public static class InvokeFromParentCompanionClass extends AbstractKotlinFindUsagesWithLibraryTest {
public static class InvokeFromParentCompanionClass extends AbstractK1KotlinFindUsagesWithLibraryTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -215,7 +215,7 @@ public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractK
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/findLibraryFunctionUsages/javaAndKotlinOverrides")
public static class JavaAndKotlinOverrides extends AbstractKotlinFindUsagesWithLibraryTest {
public static class JavaAndKotlinOverrides extends AbstractK1KotlinFindUsagesWithLibraryTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -234,7 +234,7 @@ public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractK
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/findLibraryFunctionUsages/javaMethodUsages")
public static class JavaMethodUsages extends AbstractKotlinFindUsagesWithLibraryTest {
public static class JavaMethodUsages extends AbstractK1KotlinFindUsagesWithLibraryTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -253,7 +253,7 @@ public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractK
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/findLibraryFunctionUsages/jvmOverloaded")
public static class JvmOverloaded extends AbstractKotlinFindUsagesWithLibraryTest {
public static class JvmOverloaded extends AbstractK1KotlinFindUsagesWithLibraryTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -272,7 +272,7 @@ public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractK
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/findLibraryFunctionUsages/jvmStaticFun")
public static class JvmStaticFun extends AbstractKotlinFindUsagesWithLibraryTest {
public static class JvmStaticFun extends AbstractK1KotlinFindUsagesWithLibraryTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -291,7 +291,7 @@ public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractK
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/findLibraryFunctionUsages/jvmStaticJvmOverloadsFun")
public static class JvmStaticJvmOverloadsFun extends AbstractKotlinFindUsagesWithLibraryTest {
public static class JvmStaticJvmOverloadsFun extends AbstractK1KotlinFindUsagesWithLibraryTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -310,7 +310,7 @@ public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractK
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/findLibraryFunctionUsages/kotlinAliasedMethodUsages")
public static class KotlinAliasedMethodUsages extends AbstractKotlinFindUsagesWithLibraryTest {
public static class KotlinAliasedMethodUsages extends AbstractK1KotlinFindUsagesWithLibraryTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -329,7 +329,7 @@ public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractK
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/findLibraryFunctionUsages/kotlinInterfaceImplThroughDelegate")
public static class KotlinInterfaceImplThroughDelegate extends AbstractKotlinFindUsagesWithLibraryTest {
public static class KotlinInterfaceImplThroughDelegate extends AbstractK1KotlinFindUsagesWithLibraryTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -348,7 +348,7 @@ public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractK
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/findLibraryFunctionUsages/kotlinInterfaceNoImplThroughDelegate")
public static class KotlinInterfaceNoImplThroughDelegate extends AbstractKotlinFindUsagesWithLibraryTest {
public static class KotlinInterfaceNoImplThroughDelegate extends AbstractK1KotlinFindUsagesWithLibraryTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -367,7 +367,7 @@ public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractK
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/findLibraryFunctionUsages/kotlinMethodAliasedUsages")
public static class KotlinMethodAliasedUsages extends AbstractKotlinFindUsagesWithLibraryTest {
public static class KotlinMethodAliasedUsages extends AbstractK1KotlinFindUsagesWithLibraryTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -386,7 +386,7 @@ public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractK
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/findLibraryFunctionUsages/kotlinMethodUsages")
public static class KotlinMethodUsages extends AbstractKotlinFindUsagesWithLibraryTest {
public static class KotlinMethodUsages extends AbstractK1KotlinFindUsagesWithLibraryTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -405,7 +405,7 @@ public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractK
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/findLibraryFunctionUsages/kotlinMultiRefInImport")
public static class KotlinMultiRefInImport extends AbstractKotlinFindUsagesWithLibraryTest {
public static class KotlinMultiRefInImport extends AbstractK1KotlinFindUsagesWithLibraryTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -424,7 +424,7 @@ public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractK
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/findLibraryFunctionUsages/kotlinNestedClassMethodUsages")
public static class KotlinNestedClassMethodUsages extends AbstractKotlinFindUsagesWithLibraryTest {
public static class KotlinNestedClassMethodUsages extends AbstractK1KotlinFindUsagesWithLibraryTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -443,7 +443,7 @@ public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractK
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/findLibraryFunctionUsages/kotlinOverloadAndExtensionUsages")
public static class KotlinOverloadAndExtensionUsages extends AbstractKotlinFindUsagesWithLibraryTest {
public static class KotlinOverloadAndExtensionUsages extends AbstractK1KotlinFindUsagesWithLibraryTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -462,7 +462,7 @@ public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractK
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/findLibraryFunctionUsages/kotlinOverloadAndExtensionUsages2")
public static class KotlinOverloadAndExtensionUsages2 extends AbstractKotlinFindUsagesWithLibraryTest {
public static class KotlinOverloadAndExtensionUsages2 extends AbstractK1KotlinFindUsagesWithLibraryTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -481,7 +481,7 @@ public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractK
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/findLibraryFunctionUsages/kotlinTopLevelExternalFunction")
public static class KotlinTopLevelExternalFunction extends AbstractKotlinFindUsagesWithLibraryTest {
public static class KotlinTopLevelExternalFunction extends AbstractK1KotlinFindUsagesWithLibraryTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -500,7 +500,7 @@ public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractK
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/findLibraryFunctionUsages/kotlinTopLevelMethodUsages")
public static class KotlinTopLevelMethodUsages extends AbstractKotlinFindUsagesWithLibraryTest {
public static class KotlinTopLevelMethodUsages extends AbstractK1KotlinFindUsagesWithLibraryTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -519,7 +519,7 @@ public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractK
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/findLibraryFunctionUsages/kotlinTopLevelMethodUsagesMultifile")
public static class KotlinTopLevelMethodUsagesMultifile extends AbstractKotlinFindUsagesWithLibraryTest {
public static class KotlinTopLevelMethodUsagesMultifile extends AbstractK1KotlinFindUsagesWithLibraryTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -538,7 +538,7 @@ public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractK
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/findLibraryFunctionUsages/kotlinTopLevelMethodUsagesWithRenamedFile")
public static class KotlinTopLevelMethodUsagesWithRenamedFile extends AbstractKotlinFindUsagesWithLibraryTest {
public static class KotlinTopLevelMethodUsagesWithRenamedFile extends AbstractK1KotlinFindUsagesWithLibraryTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -557,7 +557,7 @@ public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractK
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/findLibraryFunctionUsages/labeledReturns")
public static class LabeledReturns extends AbstractKotlinFindUsagesWithLibraryTest {
public static class LabeledReturns extends AbstractK1KotlinFindUsagesWithLibraryTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -576,7 +576,7 @@ public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractK
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/findLibraryFunctionUsages/nonBaseDeclarationFunctionAsPropName")
public static class NonBaseDeclarationFunctionAsPropName extends AbstractKotlinFindUsagesWithLibraryTest {
public static class NonBaseDeclarationFunctionAsPropName extends AbstractK1KotlinFindUsagesWithLibraryTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -595,7 +595,7 @@ public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractK
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/findLibraryFunctionUsages/overrides")
public static class Overrides extends AbstractKotlinFindUsagesWithLibraryTest {
public static class Overrides extends AbstractK1KotlinFindUsagesWithLibraryTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -615,7 +615,7 @@ public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractK
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/javaLibrary")
public static class JavaLibrary extends AbstractKotlinFindUsagesWithLibraryTest {
public static class JavaLibrary extends AbstractK1KotlinFindUsagesWithLibraryTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -659,7 +659,7 @@ public abstract class KotlinFindUsagesWithLibraryTestGenerated extends AbstractK
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/libraryUsages/kotlinLibrary")
public static class KotlinLibrary extends AbstractKotlinFindUsagesWithLibraryTest {
public static class KotlinLibrary extends AbstractK1KotlinFindUsagesWithLibraryTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -19,7 +19,7 @@ import org.junit.runner.RunWith;
@TestDataPath("$CONTENT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/stdlibUsages")
public class KotlinFindUsagesWithStdlibTestGenerated extends AbstractKotlinFindUsagesWithStdlibTest {
public class KotlinFindUsagesWithStdlibTestGenerated extends AbstractK1KotlinFindUsagesWithStdlibTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -19,7 +19,7 @@ import org.junit.runner.RunWith;
@TestDataPath("$CONTENT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/similarity/features")
public class KotlinGroupUsagesBySimilarityFeaturesTestGenerated extends AbstractKotlinGroupUsagesBySimilarityFeaturesTest {
public class KotlinGroupUsagesBySimilarityFeaturesTestGenerated extends AbstractK1KotlinGroupUsagesBySimilarityFeaturesTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -19,7 +19,7 @@ import org.junit.runner.RunWith;
@TestDataPath("$CONTENT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/similarity/grouping")
public class KotlinGroupUsagesBySimilarityTestGenerated extends AbstractKotlinGroupUsagesBySimilarityTest {
public class KotlinGroupUsagesBySimilarityTestGenerated extends AbstractK1KotlinGroupUsagesBySimilarityTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -19,7 +19,7 @@ import org.junit.runner.RunWith;
@TestDataPath("$CONTENT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("testData/findUsages/kotlinScript")
public class KotlinScriptFindUsagesTestGenerated extends AbstractKotlinScriptFindUsagesTest {
public class KotlinScriptFindUsagesTestGenerated extends AbstractK1KotlinScriptFindUsagesTest {
@java.lang.Override
@org.jetbrains.annotations.NotNull
public final KotlinPluginMode getPluginMode() {
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.idea.completion.test.withComponentRegistered
import org.jetbrains.kotlin.idea.core.script.k1.ScriptConfigurationManager
import org.jetbrains.kotlin.idea.test.DirectiveBasedActionUtils
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
import org.jetbrains.kotlin.idea.test.mapFromK1Provider
import org.jetbrains.kotlin.kdoc.psi.api.KDoc
import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.resolve.BindingContext
@@ -97,8 +98,8 @@ abstract class AbstractOutOfBlockModificationTest : KotlinLightCodeInsightFixtur
private fun checkForUnexpectedErrors(ktFile: KtFile) {
val diagnosticsProvider: (KtFile) -> Diagnostics = { it.analyzeWithAllCompilerChecks().bindingContext.diagnostics }
DirectiveBasedActionUtils.checkForUnexpectedWarnings(ktFile, diagnosticsProvider = diagnosticsProvider)
DirectiveBasedActionUtils.checkForUnexpectedErrors(ktFile, diagnosticsProvider = diagnosticsProvider)
DirectiveBasedActionUtils.checkForUnexpectedWarnings(ktFile, diagnosticsProvider = mapFromK1Provider(diagnosticsProvider))
DirectiveBasedActionUtils.checkForUnexpectedErrors(ktFile, diagnosticsProvider = mapFromK1Provider(diagnosticsProvider))
}
private fun checkOOBWithDescriptorsResolve(expectedOutOfBlock: Boolean) {
@@ -0,0 +1,26 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.kotlin.idea.inspections
import org.jetbrains.kotlin.idea.core.script.k1.ScriptConfigurationManager
import org.jetbrains.kotlin.idea.test.DirectiveBasedActionUtils
import org.jetbrains.kotlin.idea.test.k1DiagnosticsProvider
import org.jetbrains.kotlin.psi.KtFile
import java.io.File
abstract class AbstractK1LocalInspectionTest : AbstractLocalInspectionTest() {
override fun updateScriptDependencies(ktFile: KtFile) {
super.updateScriptDependencies(ktFile)
ScriptConfigurationManager.updateScriptDependenciesSynchronously(ktFile)
}
override fun checkForErrorsBefore(mainFile: File, ktFile: KtFile, fileText: String) {
DirectiveBasedActionUtils.checkForUnexpectedErrors(ktFile, diagnosticsProvider = k1DiagnosticsProvider)
}
override fun checkForErrorsAfter(mainFile: File, ktFile: KtFile, fileText: String) {
DirectiveBasedActionUtils.checkForUnexpectedErrors(
ktFile, directive = DirectiveBasedActionUtils.AFTER_ERROR_DIRECTIVE, diagnosticsProvider = k1DiagnosticsProvider
)
}
}
@@ -16,6 +16,8 @@ import org.jetbrains.kotlin.idea.core.getDeepestSuperDeclarations
import org.jetbrains.kotlin.idea.intentions.AddFullQualifierIntention
import org.jetbrains.kotlin.idea.stubindex.KotlinFullClassNameIndex
import org.jetbrains.kotlin.idea.stubindex.KotlinTopLevelFunctionFqnNameIndex
import org.jetbrains.kotlin.idea.test.Diagnostic
import org.jetbrains.kotlin.idea.test.k1DiagnosticsProvider
import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType
import org.jetbrains.kotlin.resolve.BindingContext
@@ -41,6 +43,8 @@ class KotlinChangeSignatureTest : BaseKotlinChangeSignatureTest<KotlinChangeInfo
AddFullQualifierIntention.Holder.addQualifiersRecursively(fragment)
}
override fun getDiagnosticProvider(): (KtFile) -> List<Diagnostic> = k1DiagnosticsProvider
override fun doRefactoring(configure: KotlinChangeInfo.() -> Unit) {
KotlinChangeSignatureProcessor(project, createChangeInfo().apply { configure() }, "Change Signature").run()
}
@@ -0,0 +1,53 @@
### auto-generated section `build intellij.kotlin.base.test` start
load("@rules_jvm//:jvm.bzl", "jvm_library")
jvm_library(
name = "base-test",
visibility = ["//visibility:public"],
srcs = glob([], allow_empty = True)
)
jvm_library(
name = "base-test_test_lib",
module_name = "intellij.kotlin.base.test",
visibility = ["//visibility:public"],
srcs = glob(["test/**/*.kt", "test/**/*.java", "test/**/*.form"], allow_empty = True),
deps = [
"@lib//:kotlin-stdlib",
"//plugins/kotlin/tests-common:tests-common_test_lib",
"//plugins/kotlin/base/test:test_test_lib",
"@lib//:kotlinc-kotlin-compiler-common",
"//plugins/kotlin/base/plugin",
"//plugins/kotlin/base/plugin:plugin_test_lib",
"//plugins/kotlin/test-framework:test-framework_test_lib",
"//platform/testFramework",
"//platform/testFramework:testFramework_test_lib",
"//platform/core-api:core",
"//plugins/properties/properties-psi-api:psi",
"//plugins/kotlin/base/util",
"//plugins/kotlin/base/util:util_test_lib",
"//plugins/kotlin/base/analysis",
"//plugins/kotlin/base/project-structure",
"//plugins/kotlin/base/project-structure:project-structure_test_lib",
"//platform/usageView",
"//platform/usageView-impl",
"//platform/refactoring",
"//plugins/kotlin/kotlin.searching/base",
"//platform/core-ui",
"//libraries/fastutil",
"//platform/analysis-api:analysis",
"//platform/util/jdom",
"//plugins/kotlin/highlighting/highlighting-minimal:kotlin-highlighting-minimal",
"//platform/projectModel-api:projectModel",
]
)
### auto-generated section `build intellij.kotlin.base.test` end
### auto-generated section `test intellij.kotlin.base.test` start
load("@community//build:tests-options.bzl", "jps_test")
jps_test(
name = "base-test_test",
runtime_deps = [":base-test_test_lib"]
)
### auto-generated section `test intellij.kotlin.base.test` end
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" scope="TEST" name="kotlin-stdlib" level="project" />
<orderEntry type="module" module-name="kotlin.tests-common" scope="TEST" />
<orderEntry type="module" module-name="kotlin.base.test" scope="TEST" />
<orderEntry type="library" scope="TEST" name="kotlinc.kotlin-compiler-common" level="project" />
<orderEntry type="module" module-name="intellij.kotlin.base.plugin" scope="TEST" />
<orderEntry type="module" module-name="kotlin.test-framework" scope="TEST" />
<orderEntry type="module" module-name="intellij.platform.testFramework" scope="TEST" />
<orderEntry type="module" module-name="intellij.platform.core" scope="TEST" />
<orderEntry type="module" module-name="intellij.properties.psi" scope="TEST" />
<orderEntry type="module" module-name="intellij.kotlin.base.util" scope="TEST" />
<orderEntry type="module" module-name="intellij.kotlin.base.analysis" scope="TEST" />
<orderEntry type="module" module-name="intellij.kotlin.base.projectStructure" scope="TEST" />
<orderEntry type="module" module-name="intellij.platform.usageView" scope="TEST" />
<orderEntry type="module" module-name="intellij.platform.usageView.impl" scope="TEST" />
<orderEntry type="module" module-name="intellij.platform.refactoring" scope="TEST" />
<orderEntry type="module" module-name="intellij.kotlin.searching.base" scope="TEST" />
<orderEntry type="module" module-name="intellij.platform.core.ui" scope="TEST" />
<orderEntry type="module" module-name="intellij.libraries.fastutil" scope="TEST" />
<orderEntry type="module" module-name="intellij.platform.analysis" scope="TEST" />
<orderEntry type="module" module-name="intellij.platform.util.jdom" scope="TEST" />
<orderEntry type="module" module-name="intellij.kotlin.highlighting.minimal" scope="TEST" />
<orderEntry type="module" module-name="intellij.platform.projectModel" scope="TEST" />
</component>
</module>
@@ -0,0 +1,3 @@
This is a module for abstract kotlin tests without explicit dependency on K1 plugin. For now, `kotlin.test-common` and `kotlin.test-framework`
depend on K1 but this should be solved in the nearest future. As an ultimate goal, the current module should be removed together with K1.
Abstract classes would be merged with K2 counterparts.
@@ -1,14 +1,10 @@
// 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.
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.kotlin.findUsages
import com.intellij.codeInsight.TargetElementUtil
import com.intellij.testFramework.UsefulTestCase
import org.jetbrains.kotlin.executeOnPooledThreadInReadAction
import org.jetbrains.kotlin.findUsages.AbstractFindUsagesTest.Companion.FindUsageTestType
import org.jetbrains.kotlin.idea.base.plugin.KotlinPluginMode
import org.jetbrains.kotlin.idea.base.test.IgnoreTests
import org.jetbrains.kotlin.idea.base.test.InTextDirectivesUtils
import org.jetbrains.kotlin.idea.base.test.executeOnPooledThreadInReadAction
import org.jetbrains.kotlin.idea.multiplatform.setupMppProjectFromDirStructure
import org.jetbrains.kotlin.idea.test.AbstractMultiModuleTest
import org.jetbrains.kotlin.idea.test.IDEA_TEST_DATA_DIR
@@ -22,7 +18,7 @@ abstract class AbstractFindUsagesMultiModuleTest : AbstractMultiModuleTest() {
override fun getTestDataDirectory() = IDEA_TEST_DATA_DIR.resolve("multiModuleFindUsages")
protected fun getTestdataFile(): File =
File(testDataPath + getTestName(true).removePrefix("test"))
File(testDataPath + getTestName(true).removePrefix("test"))
protected val mainFile: KtFile
get() = project.allKotlinFiles().single { file ->
@@ -33,9 +29,9 @@ abstract class AbstractFindUsagesMultiModuleTest : AbstractMultiModuleTest() {
open fun doTest(path: String) {
IgnoreTests.runTestIfNotDisabledByFileDirective(
getTestdataFile().toPath().resolve("directives.txt"),
IgnoreTests.DIRECTIVES.IGNORE_K1,
directivePosition = IgnoreTests.DirectivePosition.LAST_LINE_IN_FILE
getTestdataFile().toPath().resolve("directives.txt"),
IgnoreTests.DIRECTIVES.IGNORE_K1,
directivePosition = IgnoreTests.DirectivePosition.LAST_LINE_IN_FILE
) {
doTestInternal(path)
}
@@ -63,13 +59,10 @@ abstract class AbstractFindUsagesMultiModuleTest : AbstractMultiModuleTest() {
val caretElement = executeOnPooledThreadInReadAction {
TargetElementUtil.findTargetElement(myEditor, TargetElementUtil.ELEMENT_NAME_ACCEPTED)
}
UsefulTestCase.assertInstanceOf(caretElement!!, caretElementClass)
assertInstanceOf(caretElement!!, caretElementClass)
val options = parser?.parse(mainFileText, project)
val testType = when (pluginMode) {
KotlinPluginMode.K1 -> FindUsageTestType.DEFAULT
KotlinPluginMode.K2 -> FindUsageTestType.FIR
}
val testType = getTestType()
findUsagesAndCheckResults(
mainFileText,
@@ -83,4 +76,6 @@ abstract class AbstractFindUsagesMultiModuleTest : AbstractMultiModuleTest() {
ignoreLog = ignoreLog
)
}
protected abstract fun getTestType(): AbstractFindUsagesTest.Companion.FindUsageTestType
}
@@ -1,5 +1,4 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.kotlin.findUsages
import com.intellij.codeInsight.TargetElementUtil
@@ -40,36 +39,31 @@ import com.intellij.usages.rules.UsageFilteringRule
import com.intellij.usages.rules.UsageGroupingRule
import com.intellij.util.CommonProcessors
import org.jetbrains.kotlin.asJava.unwrapped
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.executeOnPooledThreadInReadAction
import org.jetbrains.kotlin.findUsages.AbstractFindUsagesTest.Companion.FindUsageTestType
import org.jetbrains.kotlin.idea.base.plugin.KotlinPluginMode
import org.jetbrains.kotlin.idea.base.projectStructure.RootKindFilter
import org.jetbrains.kotlin.idea.base.projectStructure.matches
import org.jetbrains.kotlin.idea.base.searching.usages.KotlinFunctionFindUsagesOptions
import org.jetbrains.kotlin.idea.base.searching.usages.KotlinPropertyFindUsagesOptions
import org.jetbrains.kotlin.idea.base.searching.usages.handlers.KotlinFindMemberUsagesHandler
import org.jetbrains.kotlin.idea.base.test.InTextDirectivesUtils
import org.jetbrains.kotlin.idea.base.util.*
import org.jetbrains.kotlin.idea.caches.resolve.analyzeWithAllCompilerChecks
import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptorIfAny
import org.jetbrains.kotlin.idea.caches.resolve.resolveToParameterDescriptorIfAny
import org.jetbrains.kotlin.idea.core.script.k1.ScriptConfigurationManager
import org.jetbrains.kotlin.idea.base.test.executeOnPooledThreadInReadAction
import org.jetbrains.kotlin.idea.base.util.CHECK_SUPER_METHODS_YES_NO_DIALOG
import org.jetbrains.kotlin.idea.base.util.clearDialogsResults
import org.jetbrains.kotlin.idea.base.util.projectScope
import org.jetbrains.kotlin.idea.base.util.runReadActionInSmartMode
import org.jetbrains.kotlin.idea.base.util.setDialogsResult
import org.jetbrains.kotlin.idea.core.util.toPsiFile
import org.jetbrains.kotlin.idea.findUsages.KotlinFindUsagesSupport
import org.jetbrains.kotlin.idea.search.usagesSearch.ExpressionsOfTypeProcessor
import org.jetbrains.kotlin.idea.test.*
import org.jetbrains.kotlin.idea.test.KotlinTestUtils.assertEqualsToFile
import org.jetbrains.kotlin.idea.test.kmp.KMPProjectDescriptorTestUtilities
import org.jetbrains.kotlin.idea.test.kmp.KMPTest
import org.jetbrains.kotlin.idea.test.kmp.KMPTestPlatform
import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType
import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
import java.io.File
import java.io.StringWriter
abstract class AbstractFindUsagesWithDisableComponentSearchTest : AbstractFindUsagesTest() {
override fun <T : PsiElement> doTest(path: String) {
@@ -97,6 +91,8 @@ abstract class AbstractFindUsagesTest : KotlinLightCodeInsightFixtureTestCase(),
protected open fun extraConfig(path: String) {
}
protected open fun updateScripts(file: PsiFile) {}
protected open val prefixForResults = ""
protected open val ignoreLog = false
@@ -105,12 +101,16 @@ abstract class AbstractFindUsagesTest : KotlinLightCodeInsightFixtureTestCase(),
path,
this::extraConfig,
KotlinFindUsageConfigurator.fromFixture(myFixture),
if (isFirPlugin) FindUsageTestType.FIR else FindUsageTestType.DEFAULT,
if (pluginMode == KotlinPluginMode.K2) FindUsageTestType.FIR else FindUsageTestType.DEFAULT,
prefixForResults,
ignoreLog,
testPlatform,
diagnosticProvider = getDiagnosticProvider(),
scriptsUpdater = { updateScripts(it) }
)
protected abstract fun getDiagnosticProvider(): (KtFile) -> List<Diagnostic>
override val testPlatform: KMPTestPlatform
get() = KMPTestPlatform.Unspecified
@@ -124,14 +124,16 @@ abstract class AbstractFindUsagesTest : KotlinLightCodeInsightFixtureTestCase(),
}
fun <T : PsiElement> doFindUsageTest(
path: String,
extraConfig: (path: String) -> Unit = { },
configurator: KotlinFindUsageConfigurator,
testType: FindUsageTestType = FindUsageTestType.DEFAULT,
prefixForResults: String = "",
ignoreLog: Boolean,
testPlatform: KMPTestPlatform,
executionWrapper: (findUsageTest: (FindUsageTestType) -> Unit) -> Unit = { it(testType) }
path: String,
extraConfig: (path: String) -> Unit = { },
configurator: KotlinFindUsageConfigurator,
testType: FindUsageTestType = FindUsageTestType.DEFAULT,
prefixForResults: String = "",
ignoreLog: Boolean,
testPlatform: KMPTestPlatform,
executionWrapper: (findUsageTest: (FindUsageTestType) -> Unit) -> Unit = { it(testType) },
diagnosticProvider: (KtFile) -> List<Diagnostic>,
scriptsUpdater: (PsiFile) -> Unit = {}
) {
val mainFile = File(path)
@@ -202,7 +204,7 @@ abstract class AbstractFindUsagesTest : KotlinLightCodeInsightFixtureTestCase(),
KMPProjectDescriptorTestUtilities.validateTest(configurator.allFiles, testPlatform)
if ((configurator.file as? KtFile)?.isScript() == true) {
ScriptConfigurationManager.updateScriptDependenciesSynchronously(configurator.file)
scriptsUpdater(configurator.file)
}
val javaNamesMap: Map<String, String> = FileTypeIndex.getFiles(
@@ -219,9 +221,8 @@ abstract class AbstractFindUsagesTest : KotlinLightCodeInsightFixtureTestCase(),
if (testType == FindUsageTestType.DEFAULT) {
(configurator.file as? KtFile)?.let { ktFile ->
val diagnosticsProvider: (KtFile) -> Diagnostics = { it.analyzeWithAllCompilerChecks().bindingContext.diagnostics }
DirectiveBasedActionUtils.checkForUnexpectedWarnings(ktFile, diagnosticsProvider = diagnosticsProvider)
DirectiveBasedActionUtils.checkForUnexpectedErrors(ktFile, diagnosticsProvider = diagnosticsProvider)
DirectiveBasedActionUtils.checkForUnexpectedWarnings(ktFile, diagnosticsProvider = diagnosticProvider)
DirectiveBasedActionUtils.checkForUnexpectedErrors(ktFile, diagnosticsProvider = diagnosticProvider)
}
}
@@ -254,11 +255,11 @@ abstract class AbstractFindUsagesTest : KotlinLightCodeInsightFixtureTestCase(),
}
val expectedPsiElementAsTitle = InTextDirectivesUtils.findStringWithPrefixes(mainFileText, "// PSI_ELEMENT_AS_TITLE:")
assertEqualsToFile(
mainFile,
mainFileText.replace("// PSI_ELEMENT_AS_TITLE: \"$expectedPsiElementAsTitle\"\n",
if (psiElementAsTitle != null) "// PSI_ELEMENT_AS_TITLE: \"$psiElementAsTitle\"\n" else "")
)
KotlinTestUtils.assertEqualsToFile(
mainFile,
mainFileText.replace("// PSI_ELEMENT_AS_TITLE: \"$expectedPsiElementAsTitle\"\n",
if (psiElementAsTitle != null) "// PSI_ELEMENT_AS_TITLE: \"$psiElementAsTitle\"\n" else "")
)
UsefulTestCase.assertInstanceOf(caretElement!!, caretElementClass)
@@ -342,8 +343,6 @@ abstract class AbstractFindUsagesTest : KotlinLightCodeInsightFixtureTestCase(),
.onEach { it.updateCachedPresentation() }
.filter { usageAdapter -> filters.all { it(usageAdapter) } }
val KtDeclaration.descriptor: DeclarationDescriptor?
get() = if (this is KtParameter) this.resolveToParameterDescriptorIfAny(BodyResolveMode.FULL) else this.resolveToDescriptorIfAny(BodyResolveMode.FULL)
internal fun getUsageType(element: PsiElement?): UsageType? {
if (element == null) return null
@@ -380,7 +379,7 @@ internal fun <T : PsiElement> findUsagesAndCheckResults(
project: Project,
platform: KMPTestPlatform = KMPTestPlatform.Unspecified,
alwaysAppendFileName: Boolean = false,
testType: FindUsageTestType = FindUsageTestType.DEFAULT,
testType: AbstractFindUsagesTest.Companion.FindUsageTestType = AbstractFindUsagesTest.Companion.FindUsageTestType.DEFAULT,
javaNamesMap: Map<String, String>? = null,
ignoreLog: Boolean = false,
additionalErrorMessage: String = "",
@@ -466,7 +465,7 @@ internal fun <T : PsiElement> findUsagesAndCheckResults(
results = firResults
}
}
results = KMPTest.withPlatformExtension(results.toPath(), platform).toFile()
results = KMPTest.Companion.withPlatformExtension(results.toPath(), platform).toFile()
KotlinTestUtils.assertEqualsToFile("${testType.name} $additionalErrorMessage", results, finalUsages.joinToString("\n"))
@@ -495,13 +494,13 @@ internal fun <T : PsiElement> findUsagesAndCheckResults(
}
}
internal fun findUsages(
targetElement: PsiElement,
options: FindUsagesOptions?,
highlightingMode: Boolean,
project: Project,
searchSuperDeclaration: Boolean = true,
testType: FindUsageTestType = FindUsageTestType.DEFAULT,
fun findUsages(
targetElement: PsiElement,
options: FindUsagesOptions?,
highlightingMode: Boolean,
project: Project,
searchSuperDeclaration: Boolean = true,
testType: AbstractFindUsagesTest.Companion.FindUsageTestType = AbstractFindUsagesTest.Companion.FindUsageTestType.DEFAULT,
): Collection<UsageInfo> {
try {
val handler: FindUsagesHandler = if (targetElement is PsiMember)
@@ -1,5 +1,4 @@
// 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.
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.kotlin.findUsages
import com.intellij.util.ThrowableRunnable
@@ -31,13 +30,13 @@ abstract class AbstractKotlinFindUsagesWithLibraryTest : AbstractFindUsagesTest(
}
override fun tearDown() {
runAll(
ThrowableRunnable { mockLibraryFacility.tearDown(module) },
ThrowableRunnable { super.tearDown() }
)
runAll(
ThrowableRunnable { mockLibraryFacility.tearDown(module) },
ThrowableRunnable { super.tearDown() }
)
}
override val ignoreLog: Boolean
get() = true
}
}
@@ -1,9 +1,8 @@
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.kotlin.findUsages
import org.jetbrains.kotlin.idea.test.KotlinJdkAndMultiplatformStdlibDescriptor
abstract class AbstractKotlinFindUsagesWithStdlibTest : AbstractFindUsagesTest() {
override fun getProjectDescriptor() = KotlinJdkAndMultiplatformStdlibDescriptor.JDK_AND_MULTIPLATFORM_STDLIB
}
override fun getProjectDescriptor() = KotlinJdkAndMultiplatformStdlibDescriptor.Companion.JDK_AND_MULTIPLATFORM_STDLIB
}
@@ -1,10 +1,11 @@
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.kotlin.findUsages
import com.intellij.psi.PsiElement
import com.intellij.testFramework.assertEqualsToFile
import org.jetbrains.kotlin.idea.findUsages.similarity.KotlinUsageSimilarityFeaturesProvider
import java.io.File
import kotlin.collections.map
abstract class AbstractKotlinGroupUsagesBySimilarityFeaturesTest : AbstractFindUsagesTest() {
override fun <T : PsiElement> doTest(path: String) {
@@ -12,6 +13,6 @@ abstract class AbstractKotlinGroupUsagesBySimilarityFeaturesTest : AbstractFindU
val elementAtCaret = myFixture.getReferenceAtCaretPosition()!!.element
val features = KotlinUsageSimilarityFeaturesProvider().getFeatures(elementAtCaret)
val file = File(testDataDirectory, getTestName(true) + ".features.txt")
assertEqualsToFile("", file, features.bag.map { """${it.key} => ${it.value}""" }.joinToString(separator = ",\n"))
assertEqualsToFile("", file, features.bag.map { """${it.key} => ${it.value}""" }.joinToString(separator = ",\n"))
}
}
}
@@ -1,4 +1,4 @@
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.kotlin.findUsages
import com.intellij.openapi.application.ReadAction
@@ -17,14 +17,14 @@ abstract class AbstractKotlinGroupUsagesBySimilarityTest: AbstractFindUsagesTest
val findUsages = findUsages(myFixture.elementAtCaret, null, false, myFixture.project)
val session = ClusteringSearchSession()
ReadAction.nonBlocking(Callable {
findUsages.forEach { usage ->
val u = UsageInfoToUsageConverter.convertToSimilarUsage(arrayOf(myFixture.elementAtCaret), usage, session)
(u as UsageInfo2UsageAdapter).updateCachedPresentation()
}
findUsages.forEach { usage ->
val u = UsageInfoToUsageConverter.convertToSimilarUsage(arrayOf(myFixture.elementAtCaret), usage, session)
(u as UsageInfo2UsageAdapter).updateCachedPresentation()
}
}
).submit(AppExecutorUtil.getAppExecutorService()).get()
val file = File(testDataDirectory, getTestName(true) + ".results.txt")
assertEqualsToFile("", file, session.clusters.toString())
assertEqualsToFile("", file, session.clusters.toString())
}
}
@@ -1,5 +1,4 @@
// 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.
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.kotlin.findUsages
import com.intellij.find.findUsages.CustomUsageSearcher
@@ -26,7 +25,7 @@ class CustomUsageSearcherTest : KotlinLightCodeInsightFixtureTestCaseBase() {
fun testAddCustomUsagesForKotlin() {
val customUsageSearcher = object : CustomUsageSearcher() {
override fun processElementUsages(element: PsiElement, processor: Processor<in Usage>, options: FindUsagesOptions) {
runReadAction { processor.process(UsageInfo2UsageAdapter(UsageInfo(element))) }
runReadAction { processor.process(UsageInfo2UsageAdapter(UsageInfo(element))) }
}
}
@@ -1,4 +1,4 @@
// 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.
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.kotlin.findUsages
import com.intellij.openapi.editor.Editor
@@ -40,4 +40,4 @@ interface KotlinFindUsageConfigurator {
}
}
}
}
}
@@ -1,16 +1,29 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.kotlin.findUsages
import com.intellij.find.findUsages.*
import com.intellij.find.findUsages.FindUsagesOptions
import com.intellij.find.findUsages.JavaFindUsagesOptions
import com.intellij.find.findUsages.JavaMethodFindUsagesOptions
import com.intellij.find.findUsages.JavaPackageFindUsagesOptions
import com.intellij.find.findUsages.JavaVariableFindUsagesOptions
import com.intellij.openapi.project.Project
import com.intellij.psi.*
import com.intellij.psi.PsiClass
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiField
import com.intellij.psi.PsiMethod
import com.intellij.psi.PsiPackage
import org.jetbrains.kotlin.analysis.decompiled.light.classes.KtLightMethodForDecompiledDeclaration
import org.jetbrains.kotlin.idea.base.searching.usages.KotlinClassFindUsagesOptions
import org.jetbrains.kotlin.idea.base.searching.usages.KotlinFunctionFindUsagesOptions
import org.jetbrains.kotlin.idea.base.searching.usages.KotlinPropertyFindUsagesOptions
import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.idea.base.test.InTextDirectivesUtils
import org.jetbrains.kotlin.psi.KtClass
import org.jetbrains.kotlin.psi.KtNamedFunction
import org.jetbrains.kotlin.psi.KtParameter
import org.jetbrains.kotlin.psi.KtPrimaryConstructor
import org.jetbrains.kotlin.psi.KtProperty
import org.jetbrains.kotlin.psi.KtSecondaryConstructor
import org.jetbrains.kotlin.psi.KtTypeParameter
internal enum class OptionsParser {
CLASS {
@@ -1,5 +1,4 @@
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.kotlin.idea.inspections
import com.intellij.codeHighlighting.HighlightDisplayLevel
@@ -11,6 +10,7 @@ import com.intellij.codeInspection.ProblemHighlightType
import com.intellij.modcommand.ActionContext
import com.intellij.modcommand.ModCommand
import com.intellij.modcommand.ModCommandExecutor
import com.intellij.openapi.actionSystem.ex.ActionUtil
import com.intellij.openapi.application.impl.NonBlockingReadActionImpl
import com.intellij.openapi.application.runReadAction
import com.intellij.openapi.application.runWriteAction
@@ -19,7 +19,7 @@ import com.intellij.openapi.util.TextRange
import com.intellij.openapi.util.io.FileUtil
import com.intellij.platform.testFramework.core.FileComparisonFailedError
import com.intellij.profile.codeInspection.ProjectInspectionProfileManager
import com.intellij.testFramework.PlatformTestUtil.dispatchAllEventsInIdeEventQueue
import com.intellij.testFramework.PlatformTestUtil
import com.intellij.testFramework.PsiTestUtil
import com.intellij.testFramework.fixtures.impl.CodeInsightTestFixtureImpl
import com.intellij.util.currentJavaVersion
@@ -28,25 +28,21 @@ import org.jdom.Element
import org.jetbrains.kotlin.idea.base.test.IgnoreTests
import org.jetbrains.kotlin.idea.base.test.InTextDirectivesUtils
import org.jetbrains.kotlin.idea.base.test.registerDirectiveBasedChooserOptionInterceptor
import org.jetbrains.kotlin.idea.core.script.k1.ScriptConfigurationManager
import org.jetbrains.kotlin.idea.highlighter.AbstractHighlightingPassBase
import org.jetbrains.kotlin.idea.intentions.computeOnBackground
import org.jetbrains.kotlin.idea.test.DirectiveBasedActionUtils
import org.jetbrains.kotlin.idea.test.DirectiveBasedActionUtils.AFTER_ERROR_DIRECTIVE
import org.jetbrains.kotlin.idea.test.DirectiveBasedActionUtils.DISABLE_ERRORS_DIRECTIVE
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
import org.jetbrains.kotlin.idea.test.KotlinTestUtils
import org.jetbrains.kotlin.idea.test.withCustomCompilerOptions
import org.jetbrains.kotlin.idea.util.application.executeCommand
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.test.utils.withExtension
import java.io.File
import java.nio.file.Files
import java.nio.file.Path
import kotlin.collections.forEach
import kotlin.io.nameWithoutExtension
import kotlin.io.path.createFile
import kotlin.io.path.div
abstract class AbstractLocalInspectionTest : KotlinLightCodeInsightFixtureTestCase() {
protected open val inspectionFileName: String
get() = ".inspection"
@@ -108,31 +104,33 @@ abstract class AbstractLocalInspectionTest : KotlinLightCodeInsightFixtureTestCa
val fileText = FileUtil.loadFile(mainFile, true)
assertTrue("\"<caret>\" is missing in file \"$mainFile\"", fileText.contains("<caret>"))
withCustomCompilerOptions(fileText, project, module) {
val minJavaVersion = InTextDirectivesUtils.findStringWithPrefixes(fileText, "// MIN_JAVA_VERSION: ")?.toInt()
if (minJavaVersion != null && !currentJavaVersion().isAtLeast(minJavaVersion)) {
return@withCustomCompilerOptions
}
val extraFileNames = findExtraFilesForTest(mainFile)
myFixture.configureByFiles(*(listOf(mainFile.name) + extraFileNames).toTypedArray()).first()
registerDirectiveBasedChooserOptionInterceptor(fileText, myFixture.testRootDisposable)
val ktFile = myFixture.file as KtFile
if (ktFile.isScript()) {
ScriptConfigurationManager.updateScriptDependenciesSynchronously(ktFile)
}
checkForUnexpectedErrors(mainFile, ktFile, fileText, beforeCheck = true)
doTestFor(mainFile, inspection, fileText)
PsiTestUtil.checkPsiStructureWithCommit(file, PsiTestUtil::checkPsiMatchesTextIgnoringNonCode)
withCustomCompilerOptions(fileText, project, module) {
val minJavaVersion = InTextDirectivesUtils.findStringWithPrefixes(fileText, "// MIN_JAVA_VERSION: ")?.toInt()
if (minJavaVersion != null && !currentJavaVersion().isAtLeast(minJavaVersion)) {
return@withCustomCompilerOptions
}
val extraFileNames = findExtraFilesForTest(mainFile)
myFixture.configureByFiles(*(listOf(mainFile.name) + extraFileNames).toTypedArray()).first()
registerDirectiveBasedChooserOptionInterceptor(fileText, myFixture.testRootDisposable)
val ktFile = myFixture.file as KtFile
if (ktFile.isScript()) {
updateScriptDependencies(ktFile)
}
checkForUnexpectedErrors(mainFile, ktFile, fileText, beforeCheck = true)
doTestFor(mainFile, inspection, fileText)
PsiTestUtil.checkPsiStructureWithCommit(file, PsiTestUtil::checkPsiMatchesTextIgnoringNonCode)
}
}
protected open fun updateScriptDependencies(ktFile: KtFile) {}
/**
For each test file `xxx.foo` there can be several "extra" files configured, to be copied to the same project with the main file.
These "extra" file names should be of the form: "xxx.1.blah", "xxx.2.foo", "xxx.3.xml" etc.
@@ -188,18 +186,14 @@ abstract class AbstractLocalInspectionTest : KotlinLightCodeInsightFixtureTestCa
}
protected open val skipErrorsBeforeCheckDirectives: List<String> =
listOf(IgnoreTests.DIRECTIVES.of(pluginMode), DISABLE_ERRORS_DIRECTIVE, "// SKIP_ERRORS_BEFORE")
listOf(IgnoreTests.DIRECTIVES.of(pluginMode), DirectiveBasedActionUtils.DISABLE_ERRORS_DIRECTIVE, "// SKIP_ERRORS_BEFORE")
protected open val skipErrorsAfterCheckDirectives: List<String> =
listOf(IgnoreTests.DIRECTIVES.of(pluginMode), DISABLE_ERRORS_DIRECTIVE, "// SKIP_ERRORS_AFTER")
listOf(IgnoreTests.DIRECTIVES.of(pluginMode), DirectiveBasedActionUtils.DISABLE_ERRORS_DIRECTIVE, "// SKIP_ERRORS_AFTER")
protected open fun checkForErrorsBefore(mainFile: File, ktFile: KtFile, fileText: String) {
DirectiveBasedActionUtils.checkForUnexpectedErrors(ktFile)
}
protected open fun checkForErrorsBefore(mainFile: File, ktFile: KtFile, fileText: String) {}
protected open fun checkForErrorsAfter(mainFile: File, ktFile: KtFile, fileText: String) {
DirectiveBasedActionUtils.checkForUnexpectedErrors(ktFile, directive = AFTER_ERROR_DIRECTIVE)
}
protected open fun checkForErrorsAfter(mainFile: File, ktFile: KtFile, fileText: String) {}
protected fun runInspectionWithFixesAndCheck(
inspection: LocalInspectionTool,
@@ -215,7 +209,7 @@ abstract class AbstractLocalInspectionTest : KotlinLightCodeInsightFixtureTestCa
myFixture.enableInspections(inspection::class.java)
// Set default level to WARNING to make possible to test DO_NOT_SHOW
val inspectionProfileManager = ProjectInspectionProfileManager.getInstance(project)
val inspectionProfileManager = ProjectInspectionProfileManager.Companion.getInstance(project)
val inspectionProfile = inspectionProfileManager.currentProfile
val state = inspectionProfile.getToolDefaultState(inspection.shortName, project)
state.level = HighlightDisplayLevel.WARNING
@@ -304,10 +298,10 @@ abstract class AbstractLocalInspectionTest : KotlinLightCodeInsightFixtureTestCa
val modCommandAction = localFixAction!!.asModCommandAction()
if (modCommandAction != null) {
val actionContext = ActionContext.from(editor, file)
val command: ModCommand = project.computeOnBackground {
runReadAction {
modCommandAction.perform(actionContext)
}
val command: ModCommand = ActionUtil.underModalProgress(project, "compute") {
runReadAction {
modCommandAction.perform(actionContext)
}
}
project.executeCommand(localFixAction.text, null) {
ModCommandExecutor.getInstance().executeInteractively(actionContext, command, editor)
@@ -315,7 +309,7 @@ abstract class AbstractLocalInspectionTest : KotlinLightCodeInsightFixtureTestCa
} else {
project.executeCommand(localFixAction.text, null) {
if (localFixAction.startInWriteAction()) {
runWriteAction { localFixAction.invoke(project, editor, file) }
runWriteAction { localFixAction.invoke(project, editor, file) }
} else {
localFixAction.invoke(project, editor, file)
}
@@ -381,13 +375,13 @@ abstract class AbstractLocalInspectionTest : KotlinLightCodeInsightFixtureTestCa
protected open fun passesToIgnore(): IntArray {
return intArrayOf(
Pass.LINE_MARKERS,
Pass.SLOW_LINE_MARKERS,
Pass.EXTERNAL_TOOLS,
Pass.POPUP_HINTS,
Pass.UPDATE_ALL,
Pass.UPDATE_FOLDING,
Pass.WOLF
Pass.LINE_MARKERS,
Pass.SLOW_LINE_MARKERS,
Pass.EXTERNAL_TOOLS,
Pass.POPUP_HINTS,
Pass.UPDATE_ALL,
Pass.UPDATE_FOLDING,
Pass.WOLF
)
}
@@ -398,7 +392,7 @@ abstract class AbstractLocalInspectionTest : KotlinLightCodeInsightFixtureTestCa
}
protected open fun getAfterTestDataAbsolutePath(mainFileName: String) =
testDataDirectory.toPath() / (mainFileName + afterFileNameSuffix)
testDataDirectory.toPath() / (mainFileName + afterFileNameSuffix)
protected fun doTestForInternal(mainFile: File, inspection: LocalInspectionTool, fileText: String) {
val mainFileName = mainFile.name
@@ -432,14 +426,14 @@ abstract class AbstractLocalInspectionTest : KotlinLightCodeInsightFixtureTestCa
}
createAfterFileIfItDoesNotExist(afterFileAbsolutePath)
dispatchAllEventsInIdeEventQueue()
PlatformTestUtil.dispatchAllEventsInIdeEventQueue()
NonBlockingReadActionImpl.waitForAsyncTaskCompletion()
try {
myFixture.checkResultByFile("${afterFileAbsolutePath.fileName}")
} catch (_: FileComparisonFailedError) {
KotlinTestUtils.assertEqualsToFile(
File(testDataDirectory, "${afterFileAbsolutePath.fileName}"),
editor.document.text
File(testDataDirectory, "${afterFileAbsolutePath.fileName}"),
editor.document.text
)
}
@@ -454,11 +448,11 @@ abstract class AbstractLocalInspectionTest : KotlinLightCodeInsightFixtureTestCa
}
protected fun loadInspectionSettings(testFile: File): Element? {
val customSettings = testFile.withExtension("settings.xml")
val customSettings = testFile.parentFile.resolve("${testFile.nameWithoutExtension}.settings.xml")
val commonSettings = testFile.resolveSibling("settings.xml")
return listOf(customSettings, commonSettings)
.firstOrNull { it.exists() }
?.let { JDOMUtil.load(it) }
}
}
}
@@ -249,11 +249,13 @@ public @interface NotNull {
}
if (checkErrorsAfter && psiFile is KtFile) {
DirectiveBasedActionUtils.checkForUnexpectedErrors(psiFile)
DirectiveBasedActionUtils.checkForUnexpectedErrors(psiFile, diagnosticsProvider = getDiagnosticProvider())
}
}
}
abstract fun getDiagnosticProvider(): (KtFile) -> List<Diagnostic>
protected open fun checkErrorsAfter() = InTextDirectivesUtils.isDirectiveDefined(file!!.text, "// CHECK_ERRORS_AFTER")
private fun getAfterFilePath(file: String): String {
@@ -12,14 +12,17 @@ import com.intellij.refactoring.util.CommonRefactoringUtil
import org.jetbrains.kotlin.analysis.api.KaExperimentalApi
import org.jetbrains.kotlin.analysis.api.analyze
import org.jetbrains.kotlin.analysis.api.components.KaDiagnosticCheckerFilter
import org.jetbrains.kotlin.analysis.api.diagnostics.KaSeverity
import org.jetbrains.kotlin.analysis.api.permissions.KaAllowAnalysisOnEdt
import org.jetbrains.kotlin.analysis.api.permissions.allowAnalysisOnEdt
import org.jetbrains.kotlin.asJava.unwrapped
import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.diagnostics.Severity
import org.jetbrains.kotlin.idea.base.plugin.KotlinPluginMode
import org.jetbrains.kotlin.idea.codeinsight.utils.AddQualifiersUtil
import org.jetbrains.kotlin.idea.k2.refactoring.checkSuperMethods
import org.jetbrains.kotlin.idea.refactoring.changeSignature.BaseKotlinChangeSignatureTest
import org.jetbrains.kotlin.idea.test.Diagnostic
import org.jetbrains.kotlin.psi.*
class KotlinFirChangeSignatureTest :
@@ -33,9 +36,12 @@ class KotlinFirChangeSignatureTest :
}
override fun checkErrorsAfter(): Boolean {
return false // todo
return true
}
@OptIn(KaAllowAnalysisOnEdt::class)
override fun getDiagnosticProvider(): (KtFile) -> List<Diagnostic> = { emptyList() }
override fun doTestInvokePosition(code: String) {
doTestTargetElement<KtNamedFunction>(code)
}
@@ -48,7 +48,6 @@ jvm_library(
"//plugins/kotlin/base/analysis",
"//plugins/kotlin/base/fe10/analysis",
"//plugins/kotlin/base/test:test_test_lib",
"//plugins/kotlin/core",
"//plugins/kotlin/project-configuration",
"//plugins/kotlin/frontend-independent",
"//plugins/kotlin/idea",
@@ -39,7 +39,6 @@
<orderEntry type="module" module-name="intellij.kotlin.base.analysis" />
<orderEntry type="module" module-name="kotlin.base.fe10.analysis" />
<orderEntry type="module" module-name="kotlin.base.test" scope="TEST" />
<orderEntry type="module" module-name="kotlin.core" scope="TEST" />
<orderEntry type="module" module-name="intellij.kotlin.projectConfiguration" />
<orderEntry type="module" module-name="kotlin.fir.frontend-independent" scope="TEST" />
<orderEntry type="module" module-name="kotlin.idea" scope="TEST" />
@@ -30,6 +30,14 @@ import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics
import java.io.File
import kotlin.test.assertTrue
data class Diagnostic(val message: String, val severity: Severity)
val k1DiagnosticsProvider: (KtFile) -> List<Diagnostic> =
mapFromK1Provider { it.analyzeWithContent().diagnostics }
fun mapFromK1Provider(diagnosticsProvider: (KtFile) -> Diagnostics): (KtFile) -> List<Diagnostic> = { file ->
diagnosticsProvider(file).map { Diagnostic(DefaultErrorMessages.render(it), it.severity) }
}
object DirectiveBasedActionUtils {
const val DISABLE_ERRORS_DIRECTIVE: String = "// DISABLE_ERRORS"
@@ -59,7 +67,7 @@ object DirectiveBasedActionUtils {
fun checkForUnexpectedErrors(
file: KtFile,
directive: String = ERROR_DIRECTIVE,
diagnosticsProvider: (KtFile) -> Diagnostics = { it.analyzeWithContent().diagnostics }
diagnosticsProvider: (KtFile) -> List<Diagnostic> = k1DiagnosticsProvider
) {
if (InTextDirectivesUtils.findLinesWithPrefixesRemoved(file.text, DISABLE_ERRORS_DIRECTIVE).isNotEmpty()) {
return
@@ -72,7 +80,7 @@ object DirectiveBasedActionUtils {
file: KtFile,
disabledByDefault: Boolean = true,
directiveName: String = Severity.WARNING.name,
diagnosticsProvider: (KtFile) -> Diagnostics = { it.analyzeWithContent().diagnostics }
diagnosticsProvider: (KtFile) -> List<Diagnostic> = k1DiagnosticsProvider
) {
if (disabledByDefault && InTextDirectivesUtils.findLinesWithPrefixesRemoved(file.text, ENABLE_WARNINGS_DIRECTIVE).isEmpty() ||
!disabledByDefault && InTextDirectivesUtils.findLinesWithPrefixesRemoved(file.text, DISABLE_WARNINGS_DIRECTIVE).isNotEmpty()
@@ -85,7 +93,7 @@ object DirectiveBasedActionUtils {
private fun checkForUnexpected(
file: KtFile,
diagnosticsProvider: (KtFile) -> Diagnostics,
diagnosticsProvider: (KtFile) -> List<Diagnostic>,
directive: String,
name: String,
severity: Severity,
@@ -97,7 +105,7 @@ object DirectiveBasedActionUtils {
val diagnostics = diagnosticsProvider(file)
val actual = diagnostics
.filter { it.severity == severity }
.map { "$directive ${DefaultErrorMessages.render(it).replace("\n", "<br>")}" }
.map { "$directive ${it.message.replace("\n", "<br>")}" }
.sorted()
if (actual.isEmpty() && expected.isEmpty()) return
@@ -118,7 +118,7 @@ import org.jetbrains.kotlin.idea.resolve.*
import org.jetbrains.kotlin.idea.scratch.AbstractScratchLineMarkersTest
import org.jetbrains.kotlin.idea.scratch.AbstractScratchRunActionTest
import org.jetbrains.kotlin.idea.script.*
import org.jetbrains.kotlin.idea.search.refIndex.AbstractFindUsagesWithCompilerReferenceIndexTest
import org.jetbrains.kotlin.idea.search.refIndex.AbstractK1FindUsagesWithCompilerReferenceIndexTest
import org.jetbrains.kotlin.idea.search.refIndex.AbstractKotlinCompilerReferenceByReferenceTest
import org.jetbrains.kotlin.idea.search.refIndex.AbstractKotlinCompilerReferenceTest
import org.jetbrains.kotlin.idea.slicer.AbstractSlicerLeafGroupingTest
@@ -661,7 +661,7 @@ private fun assembleWorkspace(): TWorkspace = workspace(KotlinPluginMode.K1) {
model("inspectionsLocal", pattern = Patterns.forRegex("^(inspections\\.test)$"), flatten = true)
}
testClass<AbstractLocalInspectionTest> {
testClass<AbstractK1LocalInspectionTest>(generatedClassName = "org.jetbrains.kotlin.idea.inspections.LocalInspectionTestGenerated") {
model(
"inspectionsLocal", pattern = Patterns.forRegex("^([\\w\\-_]+)\\.(kt|kts)$"),
excludedDirectories = listOf(
@@ -838,37 +838,37 @@ private fun assembleWorkspace(): TWorkspace = workspace(KotlinPluginMode.K1) {
}
testGroup("idea/tests", category = FIND_USAGES) {
testClass<AbstractFindUsagesTest> {
testClass<AbstractK1FindUsagesTest>(generatedClassName = "org.jetbrains.kotlin.findUsages.FindUsagesTestGenerated") {
model("findUsages/kotlin", pattern = Patterns.forRegex("""^(.+)\.0\.kt$"""))
model("findUsages/java", pattern = Patterns.forRegex("""^(.+)\.0\.java$"""))
model("findUsages/propertyFiles", pattern = Patterns.forRegex("""^(.+)\.0\.properties$"""))
}
testClass<AbstractFindUsagesMultiModuleTest> {
testClass<AbstractK1FindUsagesMultiModuleTest>(generatedClassName = "org.jetbrains.kotlin.findUsages.FindUsagesMultiModuleTestGenerated") {
model("multiModuleFindUsages", isRecursive = false, pattern = DIRECTORY)
}
testClass<AbstractKotlinScriptFindUsagesTest> {
testClass<AbstractK1KotlinScriptFindUsagesTest>(generatedClassName = "org.jetbrains.kotlin.findUsages.KotlinScriptFindUsagesTestGenerated") {
model("findUsages/kotlinScript", pattern = Patterns.forRegex("""^(.+)\.0\.kts$"""))
}
testClass<AbstractFindUsagesWithDisableComponentSearchTest> {
testClass<AbstractK1FindUsagesWithDisableComponentSearchTest>(generatedClassName = "org.jetbrains.kotlin.findUsages.FindUsagesWithDisableComponentSearchTestGenerated") {
model("findUsages/kotlin/conventions/components", pattern = Patterns.forRegex("""^(.+)\.0\.(kt|kts)$"""))
}
testClass<AbstractKotlinFindUsagesWithLibraryTest> {
testClass<AbstractK1KotlinFindUsagesWithLibraryTest>(generatedClassName = "org.jetbrains.kotlin.findUsages.KotlinFindUsagesWithLibraryTestGenerated") {
model("findUsages/libraryUsages", pattern = Patterns.forRegex("""^(.+)\.0\.(kt|java)$"""))
}
testClass<AbstractKotlinFindUsagesWithStdlibTest> {
testClass<AbstractK1KotlinFindUsagesWithStdlibTest>(generatedClassName = "org.jetbrains.kotlin.findUsages.KotlinFindUsagesWithStdlibTestGenerated") {
model("findUsages/stdlibUsages", pattern = Patterns.forRegex("""^(.+)\.0\.kt$"""))
}
testClass<AbstractKotlinGroupUsagesBySimilarityTest> {
testClass<AbstractK1KotlinGroupUsagesBySimilarityTest>(generatedClassName = "org.jetbrains.kotlin.findUsages.KotlinGroupUsagesBySimilarityTestGenerated") {
model("findUsages/similarity/grouping", pattern = KT)
}
testClass<AbstractKotlinGroupUsagesBySimilarityFeaturesTest> {
testClass<AbstractK1KotlinGroupUsagesBySimilarityFeaturesTest>(generatedClassName = "org.jetbrains.kotlin.findUsages.KotlinGroupUsagesBySimilarityFeaturesTestGenerated") {
model("findUsages/similarity/features", pattern = KT)
}
}
@@ -1538,7 +1538,7 @@ private fun assembleWorkspace(): TWorkspace = workspace(KotlinPluginMode.K1) {
}
testGroup("compiler-reference-index/tests", testDataPath = "../../idea/tests/testData") {
testClass<AbstractFindUsagesWithCompilerReferenceIndexTest> {
testClass<AbstractK1FindUsagesWithCompilerReferenceIndexTest>(generatedClassName = "org.jetbrains.kotlin.idea.search.refIndex.FindUsagesWithCompilerReferenceIndexTestGenerated") {
model("findUsages/kotlin", pattern = Patterns.forRegex("""^(.+)\.0\.kt$"""), classPerTest = true)
model("findUsages/java", pattern = Patterns.forRegex("""^(.+)\.0\.java$"""), classPerTest = true)
model("findUsages/propertyFiles", pattern = Patterns.forRegex("""^(.+)\.0\.properties$"""), classPerTest = true)