diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/annotations/AbstractAnalysisApiAnnotationsOnDeclarationsTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/annotations/AbstractAnalysisApiAnnotationsOnDeclarationsTest.kt index fa4a084f2f0..9d43c1940f0 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/annotations/AbstractAnalysisApiAnnotationsOnDeclarationsTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/annotations/AbstractAnalysisApiAnnotationsOnDeclarationsTest.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ @@ -8,7 +8,7 @@ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.annotations import org.jetbrains.kotlin.analysis.api.KtAnalysisSession import org.jetbrains.kotlin.analysis.api.annotations.KtAnnotationsList import org.jetbrains.kotlin.analysis.api.symbols.markers.KtAnnotatedSymbol -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider import org.jetbrains.kotlin.psi.KtDeclaration import org.jetbrains.kotlin.psi.KtFile @@ -16,14 +16,13 @@ import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions -abstract class AbstractAnalysisApiAnnotationsOnDeclarationsTest : AbstractAnalysisApiSingleFileTest() { +abstract class AbstractAnalysisApiAnnotationsOnDeclarationsTest : AbstractAnalysisApiBasedTest() { context(KtAnalysisSession) open fun renderAnnotations(annotations: KtAnnotationsList): String = TestAnnotationRenderer.renderAnnotations(annotations) - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { - val ktDeclaration = testServices.expressionMarkerProvider - .getElementOfTypeAtCaret(ktFile) + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { + val ktDeclaration = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(mainFile) val actual = analyseForTest(ktDeclaration) { val declarationSymbol = ktDeclaration.getSymbol() as KtAnnotatedSymbol buildString { diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/annotations/AbstractAnalysisApiAnnotationsOnFilesTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/annotations/AbstractAnalysisApiAnnotationsOnFilesTest.kt index c3870737aec..1c5af78a9e0 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/annotations/AbstractAnalysisApiAnnotationsOnFilesTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/annotations/AbstractAnalysisApiAnnotationsOnFilesTest.kt @@ -1,20 +1,20 @@ /* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.annotations -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions -abstract class AbstractAnalysisApiAnnotationsOnFilesTest : AbstractAnalysisApiSingleFileTest() { - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { - val actual = analyseForTest(ktFile) { - val fileSymbol = ktFile.getFileSymbol() +abstract class AbstractAnalysisApiAnnotationsOnFilesTest : AbstractAnalysisApiBasedTest() { + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { + val actual = analyseForTest(mainFile) { + val fileSymbol = mainFile.getFileSymbol() TestAnnotationRenderer.renderAnnotations(fileSymbol.annotationsList) } diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/annotations/AnalysisApiAnnotationsOnTypesTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/annotations/AbstractAnalysisApiAnnotationsOnTypesTest.kt similarity index 84% rename from analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/annotations/AnalysisApiAnnotationsOnTypesTest.kt rename to analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/annotations/AbstractAnalysisApiAnnotationsOnTypesTest.kt index 68739af26e6..fd0ee031885 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/annotations/AnalysisApiAnnotationsOnTypesTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/annotations/AbstractAnalysisApiAnnotationsOnTypesTest.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ @@ -7,7 +7,7 @@ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.annotations import org.jetbrains.kotlin.analysis.api.annotations.annotations import org.jetbrains.kotlin.analysis.api.symbols.DebugSymbolRenderer -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider import org.jetbrains.kotlin.analysis.test.framework.utils.indented import org.jetbrains.kotlin.psi.KtFile @@ -16,11 +16,9 @@ import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions -abstract class AbstractAnalysisApiAnnotationsOnTypesTest : AbstractAnalysisApiSingleFileTest() { - - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { - val ktTypeReference = testServices.expressionMarkerProvider - .getElementOfTypeAtCaret(ktFile) +abstract class AbstractAnalysisApiAnnotationsOnTypesTest : AbstractAnalysisApiBasedTest() { + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { + val ktTypeReference = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(mainFile) val actual = analyseForTest(ktTypeReference) { val ktType = ktTypeReference.getKtType() val annotations = ktType.annotations @@ -37,4 +35,3 @@ abstract class AbstractAnalysisApiAnnotationsOnTypesTest : AbstractAnalysisApiSi testServices.assertions.assertEqualsToTestDataFileSibling(actual) } } - diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/annotations/AbstractAnalysisApiSpecificAnnotationOnDeclarationTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/annotations/AbstractAnalysisApiSpecificAnnotationOnDeclarationTest.kt index 7c0dc2f2cca..ba82cd61cdb 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/annotations/AbstractAnalysisApiSpecificAnnotationOnDeclarationTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/annotations/AbstractAnalysisApiSpecificAnnotationOnDeclarationTest.kt @@ -1,15 +1,14 @@ /* - * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.annotations import org.jetbrains.kotlin.analysis.api.annotations.KtAnnotationApplication -import org.jetbrains.kotlin.analysis.api.annotations.KtAnnotationsList import org.jetbrains.kotlin.analysis.api.symbols.DebugSymbolRenderer import org.jetbrains.kotlin.analysis.api.symbols.markers.KtAnnotatedSymbol -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.psi.KtDeclaration @@ -21,15 +20,15 @@ import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions -abstract class AbstractAnalysisApiSpecificAnnotationOnDeclarationTest : AbstractAnalysisApiSingleFileTest() { +abstract class AbstractAnalysisApiSpecificAnnotationOnDeclarationTest : AbstractAnalysisApiBasedTest() { override fun configureTest(builder: TestConfigurationBuilder) { super.configureTest(builder) builder.useDirectives(Directives) } - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { - val ktDeclaration = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(ktFile) - val classIdString = module.directives.singleValue(Directives.CLASS_ID) + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { + val ktDeclaration = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(mainFile) + val classIdString = mainModule.directives.singleValue(Directives.CLASS_ID) val actual = analyseForTest(ktDeclaration) { val declarationSymbol = ktDeclaration.getSymbol() as KtAnnotatedSymbol diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/compileTimeConstantProvider/AbstractCompileTimeConstantEvaluatorTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/compileTimeConstantProvider/AbstractCompileTimeConstantEvaluatorTest.kt index 67d4594f120..d925aeeeca1 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/compileTimeConstantProvider/AbstractCompileTimeConstantEvaluatorTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/compileTimeConstantProvider/AbstractCompileTimeConstantEvaluatorTest.kt @@ -1,12 +1,12 @@ /* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.compileTimeConstantProvider import org.jetbrains.kotlin.analysis.api.components.KtConstantEvaluationMode -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider import org.jetbrains.kotlin.analysis.test.framework.utils.executeOnPooledThreadInReadAction import org.jetbrains.kotlin.psi.KtExpression @@ -16,9 +16,9 @@ import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions -abstract class AbstractCompileTimeConstantEvaluatorTest : AbstractAnalysisApiSingleFileTest() { - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { - val element = testServices.expressionMarkerProvider.getSelectedElementOfTypeByDirective(ktFile, module) +abstract class AbstractCompileTimeConstantEvaluatorTest : AbstractAnalysisApiBasedTest() { + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { + val element = testServices.expressionMarkerProvider.getSelectedElementOfTypeByDirective(mainFile, mainModule) val expression = when (element) { is KtExpression -> element is KtValueArgument -> element.getArgumentExpression() diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/containingDeclarationProvider/AbstractContainingDeclarationProviderByDelegatedMemberScopeTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/containingDeclarationProvider/AbstractContainingDeclarationProviderByDelegatedMemberScopeTest.kt index dc09fad867d..3081dffd0a7 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/containingDeclarationProvider/AbstractContainingDeclarationProviderByDelegatedMemberScopeTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/containingDeclarationProvider/AbstractContainingDeclarationProviderByDelegatedMemberScopeTest.kt @@ -1,12 +1,12 @@ /* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.containingDeclarationProvider import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.renderScopeWithParentDeclarations -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider import org.jetbrains.kotlin.psi.KtClassOrObject import org.jetbrains.kotlin.psi.KtFile @@ -14,9 +14,9 @@ import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions -abstract class AbstractContainingDeclarationProviderByDelegatedMemberScopeTest : AbstractAnalysisApiSingleFileTest() { - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { - val declaration = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(ktFile) +abstract class AbstractContainingDeclarationProviderByDelegatedMemberScopeTest : AbstractAnalysisApiBasedTest() { + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { + val declaration = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(mainFile) val memberToContainingClass = analyseForTest(declaration) { val symbol = declaration.getClassOrObjectSymbol()!! diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/containingDeclarationProvider/AbstractContainingDeclarationProviderByMemberScopeTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/containingDeclarationProvider/AbstractContainingDeclarationProviderByMemberScopeTest.kt index baa7750e370..673bc6da279 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/containingDeclarationProvider/AbstractContainingDeclarationProviderByMemberScopeTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/containingDeclarationProvider/AbstractContainingDeclarationProviderByMemberScopeTest.kt @@ -1,27 +1,22 @@ /* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.containingDeclarationProvider import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.renderScopeWithParentDeclarations -import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol -import org.jetbrains.kotlin.analysis.api.symbols.KtClassLikeSymbol -import org.jetbrains.kotlin.analysis.api.symbols.KtNamedClassOrObjectSymbol -import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider -import org.jetbrains.kotlin.analysis.utils.printer.prettyPrint import org.jetbrains.kotlin.psi.KtClassOrObject import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions -abstract class AbstractContainingDeclarationProviderByMemberScopeTest : AbstractAnalysisApiSingleFileTest() { - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { - val declaration = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(ktFile) +abstract class AbstractContainingDeclarationProviderByMemberScopeTest : AbstractAnalysisApiBasedTest() { + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { + val declaration = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(mainFile) val memberToContainingClass = analyseForTest(declaration) { val symbol = declaration.getClassOrObjectSymbol()!! diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/containingDeclarationProvider/AbstractContainingDeclarationProviderByPsiTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/containingDeclarationProvider/AbstractContainingDeclarationProviderByPsiTest.kt index 3fc996d4385..319548faf4c 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/containingDeclarationProvider/AbstractContainingDeclarationProviderByPsiTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/containingDeclarationProvider/AbstractContainingDeclarationProviderByPsiTest.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ @@ -10,19 +10,19 @@ import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.symbols.checkConta import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.symbols.checkContainingJvmClassName import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.analysis.api.symbols.KtScriptSymbol -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions -abstract class AbstractContainingDeclarationProviderByPsiTest : AbstractAnalysisApiSingleFileTest() { - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { +abstract class AbstractContainingDeclarationProviderByPsiTest : AbstractAnalysisApiBasedTest() { + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { val currentPath = mutableListOf() val ktClasses = mutableListOf() - analyseForTest(ktFile.declarations.first()) { - val expectedFileSymbol = ktFile.getFileSymbol() - ktFile.accept(object : KtVisitorVoid() { + analyseForTest(mainFile.declarations.first()) { + val expectedFileSymbol = mainFile.getFileSymbol() + mainFile.accept(object : KtVisitorVoid() { override fun visitElement(element: PsiElement) { element.acceptChildren(this) } @@ -43,7 +43,7 @@ abstract class AbstractContainingDeclarationProviderByPsiTest : AbstractAnalysis checkContainingFileSymbol(expectedFileSymbol, currentDeclarationSymbol, testServices) if (currentDeclarationSymbol is KtCallableSymbol) { - checkContainingJvmClassName(ktFile, ktClasses.lastOrNull(), currentDeclarationSymbol, testServices) + checkContainingJvmClassName(mainFile, ktClasses.lastOrNull(), currentDeclarationSymbol, testServices) } currentPath.add(dcl) diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/containingDeclarationProvider/AbstractContainingDeclarationProviderForSetterParameterTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/containingDeclarationProvider/AbstractContainingDeclarationProviderForSetterParameterTest.kt index 26d8a13fbc9..0c74dc77c62 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/containingDeclarationProvider/AbstractContainingDeclarationProviderForSetterParameterTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/containingDeclarationProvider/AbstractContainingDeclarationProviderForSetterParameterTest.kt @@ -1,12 +1,12 @@ /* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.containingDeclarationProvider import org.jetbrains.kotlin.analysis.api.symbols.KtPropertySymbol -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtProperty @@ -14,9 +14,9 @@ import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions -abstract class AbstractContainingDeclarationProviderForSetterParameterTest : AbstractAnalysisApiSingleFileTest() { - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { - val context = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(ktFile) +abstract class AbstractContainingDeclarationProviderForSetterParameterTest : AbstractAnalysisApiBasedTest() { + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { + val context = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(mainFile) analyseForTest(context) { declaration -> val propertySymbol = (declaration as KtProperty).getVariableSymbol() as KtPropertySymbol diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/expressionInfoProvider/AbstractIsUsedAsExpressionTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/expressionInfoProvider/AbstractIsUsedAsExpressionTest.kt index 8e48aae37ae..985223b31d3 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/expressionInfoProvider/AbstractIsUsedAsExpressionTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/expressionInfoProvider/AbstractIsUsedAsExpressionTest.kt @@ -1,21 +1,20 @@ /* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.expressionInfoProvider -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions -abstract class AbstractIsUsedAsExpressionTest : AbstractAnalysisApiSingleFileTest() { - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { - - val expression = testServices.expressionMarkerProvider.getSelectedElementOfType(ktFile).let { +abstract class AbstractIsUsedAsExpressionTest : AbstractAnalysisApiBasedTest() { + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { + val expression = testServices.expressionMarkerProvider.getSelectedElementOfType(mainFile).let { if (it is KtBlockExpression && it.statements.size == 1 && it.textRange == it.statements.single().textRange) { it.statements.single() } else { diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/expressionInfoProvider/AbstractReturnTargetSymbolTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/expressionInfoProvider/AbstractReturnTargetSymbolTest.kt index 0fca28bcba1..066b6033740 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/expressionInfoProvider/AbstractReturnTargetSymbolTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/expressionInfoProvider/AbstractReturnTargetSymbolTest.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ @@ -8,7 +8,7 @@ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.expres import com.intellij.psi.PsiComment import com.intellij.psi.PsiElement import com.intellij.psi.impl.source.tree.LeafPsiElement -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.analysis.test.framework.utils.getNameWithPositionString import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtReturnExpression @@ -17,12 +17,13 @@ import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions -abstract class AbstractReturnTargetSymbolTest : AbstractAnalysisApiSingleFileTest() { +abstract class AbstractReturnTargetSymbolTest : AbstractAnalysisApiBasedTest() { val commentRegex = Regex("""/\* (.+@\(.+\)|null) \*/""") - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { - val original = ktFile.text + + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { + val original = mainFile.text val actual = buildString { - ktFile.accept(object : KtTreeVisitorVoid() { + mainFile.accept(object : KtTreeVisitorVoid() { override fun visitElement(element: PsiElement) { if (element is LeafPsiElement) { append(element.text) diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/expressionInfoProvider/AbstractWhenMissingCasesTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/expressionInfoProvider/AbstractWhenMissingCasesTest.kt index f4fd14b32dc..47668a45a1e 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/expressionInfoProvider/AbstractWhenMissingCasesTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/expressionInfoProvider/AbstractWhenMissingCasesTest.kt @@ -1,12 +1,12 @@ /* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.expressionInfoProvider +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest import org.jetbrains.kotlin.analysis.test.framework.utils.executeOnPooledThreadInReadAction import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtWhenExpression @@ -14,9 +14,9 @@ import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions -abstract class AbstractWhenMissingCasesTest : AbstractAnalysisApiSingleFileTest() { - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { - val whenExpression = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(ktFile) +abstract class AbstractWhenMissingCasesTest : AbstractAnalysisApiBasedTest() { + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { + val whenExpression = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(mainFile) val actual = executeOnPooledThreadInReadAction { analyseForTest(whenExpression) { diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/expressionTypeProvider/AbstractDeclarationReturnTypeTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/expressionTypeProvider/AbstractDeclarationReturnTypeTest.kt index 20491601d2e..e25927bda6b 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/expressionTypeProvider/AbstractDeclarationReturnTypeTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/expressionTypeProvider/AbstractDeclarationReturnTypeTest.kt @@ -1,11 +1,11 @@ /* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.expressionTypeProvider -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.analysis.test.framework.utils.getNameWithPositionString import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.test.model.TestModule @@ -13,10 +13,10 @@ import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions import org.jetbrains.kotlin.types.Variance -abstract class AbstractDeclarationReturnTypeTest : AbstractAnalysisApiSingleFileTest() { - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { +abstract class AbstractDeclarationReturnTypeTest : AbstractAnalysisApiBasedTest() { + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { val actual = buildString { - ktFile.accept(object : KtTreeVisitor() { + mainFile.accept(object : KtTreeVisitor() { override fun visitDeclaration(declaration: KtDeclaration, indent: Int): Void? { if (declaration is KtTypeParameter) return null append(" ".repeat(indent)) diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/expressionTypeProvider/AbstractExpectedExpressionTypeTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/expressionTypeProvider/AbstractExpectedExpressionTypeTest.kt index 1ccf694eaa1..69a3a9a20f2 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/expressionTypeProvider/AbstractExpectedExpressionTypeTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/expressionTypeProvider/AbstractExpectedExpressionTypeTest.kt @@ -1,13 +1,13 @@ /* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.expressionTypeProvider -import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest import org.jetbrains.kotlin.analysis.api.symbols.DebugSymbolRenderer +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest +import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider import org.jetbrains.kotlin.analysis.test.framework.utils.executeOnPooledThreadInReadAction import org.jetbrains.kotlin.psi.KtExpression import org.jetbrains.kotlin.psi.KtFile @@ -15,9 +15,9 @@ import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions -abstract class AbstractExpectedExpressionTypeTest : AbstractAnalysisApiSingleFileTest() { - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { - val expressionAtCaret = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(ktFile) as KtExpression +abstract class AbstractExpectedExpressionTypeTest : AbstractAnalysisApiBasedTest() { + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { + val expressionAtCaret = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(mainFile) as KtExpression val actualExpectedTypeText: String? = executeOnPooledThreadInReadAction { analyseForTest(expressionAtCaret) { diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/expressionTypeProvider/AbstractHLExpressionTypeTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/expressionTypeProvider/AbstractHLExpressionTypeTest.kt index 731094bcc4e..0aeea701751 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/expressionTypeProvider/AbstractHLExpressionTypeTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/expressionTypeProvider/AbstractHLExpressionTypeTest.kt @@ -1,12 +1,12 @@ /* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.expressionTypeProvider import org.jetbrains.kotlin.analysis.api.renderer.types.impl.KtTypeRendererForDebug -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider import org.jetbrains.kotlin.analysis.test.framework.utils.executeOnPooledThreadInReadAction import org.jetbrains.kotlin.psi.KtBlockExpression @@ -18,9 +18,9 @@ import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions import org.jetbrains.kotlin.types.Variance -abstract class AbstractHLExpressionTypeTest : AbstractAnalysisApiSingleFileTest() { - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { - val selected = testServices.expressionMarkerProvider.getSelectedElementOfTypeByDirective(ktFile, module).let { +abstract class AbstractHLExpressionTypeTest : AbstractAnalysisApiBasedTest() { + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { + val selected = testServices.expressionMarkerProvider.getSelectedElementOfTypeByDirective(mainFile, mainModule).let { if (it is KtBlockExpression && it.statements.size == 1 && it.textRange == it.statements.single().textRange) { it.statements.single() } else { diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/psiTypeProvider/AbstractAnalysisApiExpressionPsiTypeProviderTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/psiTypeProvider/AbstractAnalysisApiExpressionPsiTypeProviderTest.kt index 7ddc05d6266..2d977cddc23 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/psiTypeProvider/AbstractAnalysisApiExpressionPsiTypeProviderTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/psiTypeProvider/AbstractAnalysisApiExpressionPsiTypeProviderTest.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ @@ -8,7 +8,7 @@ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.psiTyp import org.jetbrains.kotlin.analysis.api.analyze import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.psiTypeProvider.AnalysisApiPsiTypeProviderTestUtils.findLightDeclarationContext import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.psiTypeProvider.AnalysisApiPsiTypeProviderTestUtils.getContainingKtLightClass -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider import org.jetbrains.kotlin.analysis.utils.printer.parentOfType import org.jetbrains.kotlin.psi.KtDeclaration @@ -20,19 +20,19 @@ import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions import org.jetbrains.kotlin.types.Variance -abstract class AbstractAnalysisApiExpressionPsiTypeProviderTest : AbstractAnalysisApiSingleFileTest() { - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { - val declarationAtCaret = when (val element = testServices.expressionMarkerProvider.getSelectedElement(ktFile)) { +abstract class AbstractAnalysisApiExpressionPsiTypeProviderTest : AbstractAnalysisApiBasedTest() { + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { + val declarationAtCaret = when (val element = testServices.expressionMarkerProvider.getSelectedElement(mainFile)) { is KtExpression -> element is KtValueArgument -> element.getArgumentExpression()!! else -> error("Unexpected element: $element of ${element::class}") } val containingDeclaration = declarationAtCaret.parentOfType() ?: error("Can't find containing declaration for $declarationAtCaret") - val containingClass = getContainingKtLightClass(containingDeclaration, ktFile) + val containingClass = getContainingKtLightClass(containingDeclaration, mainFile) val psiContext = containingClass.findLightDeclarationContext(containingDeclaration) ?: error("Can't find psi context for $containingDeclaration") - val actual = analyze(ktFile) { + val actual = analyze(mainFile) { val returnType = declarationAtCaret.getKtType() if (returnType != null) { val psiType = returnType.asPsiType(psiContext, allowErrorTypes = false) diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/referenceResolveProvider/AbstractIsImplicitCompanionReferenceTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/referenceResolveProvider/AbstractIsImplicitCompanionReferenceTest.kt index e6165b414aa..ac30d93f04b 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/referenceResolveProvider/AbstractIsImplicitCompanionReferenceTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/referenceResolveProvider/AbstractIsImplicitCompanionReferenceTest.kt @@ -1,11 +1,11 @@ /* - * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.referenceResolveProvider -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider import org.jetbrains.kotlin.analysis.test.framework.utils.executeOnPooledThreadInReadAction import org.jetbrains.kotlin.idea.references.KtReference @@ -15,10 +15,9 @@ import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions -abstract class AbstractIsImplicitCompanionReferenceTest : AbstractAnalysisApiSingleFileTest() { - - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { - val referenceExpression = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(ktFile) +abstract class AbstractIsImplicitCompanionReferenceTest : AbstractAnalysisApiBasedTest() { + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { + val referenceExpression = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(mainFile) val isImplicitCompanionReference = executeOnPooledThreadInReadAction { analyseForTest(referenceExpression) { @@ -28,7 +27,7 @@ abstract class AbstractIsImplicitCompanionReferenceTest : AbstractAnalysisApiSin } val actual = buildString { - append("isImplicitCompanionReference: $isImplicitCompanionReference") + append("isImplicitCompanionReference: $isImplicitCompanionReference") } testServices.assertions.assertEqualsToTestDataFileSibling(actual) diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/scopeProvider/AbstractFileScopeTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/scopeProvider/AbstractFileScopeTest.kt index 75efd536ea1..3aead176051 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/scopeProvider/AbstractFileScopeTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/scopeProvider/AbstractFileScopeTest.kt @@ -1,23 +1,23 @@ /* - * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.scopeProvider -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest import org.jetbrains.kotlin.analysis.api.symbols.DebugSymbolRenderer +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.analysis.test.framework.utils.executeOnPooledThreadInReadAction import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions -abstract class AbstractFileScopeTest : AbstractAnalysisApiSingleFileTest() { - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { +abstract class AbstractFileScopeTest : AbstractAnalysisApiBasedTest() { + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { val actual = executeOnPooledThreadInReadAction { - analyseForTest(ktFile) { - val symbol = ktFile.getFileSymbol() + analyseForTest(mainFile) { + val symbol = mainFile.getFileSymbol() val scope = symbol.getFileScope() with(DebugSymbolRenderer(renderExtra = true)) { val renderedSymbol = render(symbol) diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/scopeProvider/AbstractTypeScopeTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/scopeProvider/AbstractTypeScopeTest.kt index 4808c7fc416..f758f8a3a95 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/scopeProvider/AbstractTypeScopeTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/scopeProvider/AbstractTypeScopeTest.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ @@ -13,7 +13,7 @@ import org.jetbrains.kotlin.analysis.api.renderer.declarations.modifiers.rendere import org.jetbrains.kotlin.analysis.api.scopes.KtScope import org.jetbrains.kotlin.analysis.api.scopes.KtTypeScope import org.jetbrains.kotlin.analysis.api.symbols.DebugSymbolRenderer -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider import org.jetbrains.kotlin.analysis.utils.printer.prettyPrint import org.jetbrains.kotlin.psi.KtExpression @@ -23,9 +23,9 @@ import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions import org.jetbrains.kotlin.types.Variance -abstract class AbstractTypeScopeTest : AbstractAnalysisApiSingleFileTest() { - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { - val expression = testServices.expressionMarkerProvider.getSelectedElementOfType(ktFile) +abstract class AbstractTypeScopeTest : AbstractAnalysisApiBasedTest() { + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { + val expression = testServices.expressionMarkerProvider.getSelectedElementOfType(mainFile) analyseForTest(expression) { val type = expression.getKtType() ?: error("expression $expression is not typable") diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/signatureSubstitution/AbstractAnalysisApiSignatureContractsTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/signatureSubstitution/AbstractAnalysisApiSignatureContractsTest.kt index 5cbc19fc5d7..d391b5594d4 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/signatureSubstitution/AbstractAnalysisApiSignatureContractsTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/signatureSubstitution/AbstractAnalysisApiSignatureContractsTest.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ @@ -14,7 +14,7 @@ import org.jetbrains.kotlin.analysis.api.signatures.KtFunctionLikeSignature import org.jetbrains.kotlin.analysis.api.signatures.KtVariableLikeSignature import org.jetbrains.kotlin.analysis.api.symbols.* import org.jetbrains.kotlin.analysis.api.types.KtSubstitutor -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.name.StandardClassIds import org.jetbrains.kotlin.psi.KtCallableDeclaration import org.jetbrains.kotlin.psi.KtFile @@ -24,16 +24,16 @@ import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions import kotlin.math.pow -abstract class AbstractAnalysisApiSignatureContractsTest : AbstractAnalysisApiSingleFileTest() { - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { - ktFile.collectDescendantsOfType().forEach { +abstract class AbstractAnalysisApiSignatureContractsTest : AbstractAnalysisApiBasedTest() { + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { + mainFile.collectDescendantsOfType().forEach { testContractsOnDeclaration(it, testServices) } } private fun testContractsOnDeclaration( callableDeclaration: KtCallableDeclaration, - testServices: TestServices + testServices: TestServices, ) { analyseForTest(callableDeclaration) { val typesToCheckOn = buildList { @@ -63,7 +63,7 @@ abstract class AbstractAnalysisApiSignatureContractsTest : AbstractAnalysisApiSi private fun KtAnalysisSession.testContractsOnDeclarationSymbol( symbol: KtCallableSymbol, substitutor: KtSubstitutor, - testServices: TestServices + testServices: TestServices, ) { run { val substitutedViaSignature = symbol.asSignature().substitute(substitutor) @@ -100,7 +100,7 @@ abstract class AbstractAnalysisApiSignatureContractsTest : AbstractAnalysisApiSi symbol: KtFunctionLikeSymbol, signature: KtFunctionLikeSignature<*>, substitutor: KtSubstitutor, - testServices: TestServices + testServices: TestServices, ) { testServices.assertions.assertEquals(symbol.receiverType?.let(substitutor::substitute), signature.receiverType) testServices.assertions.assertEquals(symbol.returnType.let(substitutor::substitute), signature.returnType) @@ -116,7 +116,7 @@ abstract class AbstractAnalysisApiSignatureContractsTest : AbstractAnalysisApiSi symbol: KtVariableLikeSymbol, signature: KtVariableLikeSignature<*>, substitutor: KtSubstitutor, - testServices: TestServices + testServices: TestServices, ) { testServices.assertions.assertEquals(symbol.receiverType?.let(substitutor::substitute), signature.receiverType) testServices.assertions.assertEquals(symbol.returnType.let(substitutor::substitute), signature.returnType) diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/signatureSubstitution/AbstractAnalysisApiSignatureSubstitutionTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/signatureSubstitution/AbstractAnalysisApiSignatureSubstitutionTest.kt index e424a7fd5c6..6da78799050 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/signatureSubstitution/AbstractAnalysisApiSignatureSubstitutionTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/signatureSubstitution/AbstractAnalysisApiSignatureSubstitutionTest.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ @@ -8,7 +8,7 @@ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.signat import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.stringRepresentation import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.analysis.api.symbols.getSymbolOfType -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.analysis.test.framework.services.SubstitutionParser import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider import org.jetbrains.kotlin.analysis.utils.printer.prettyPrint @@ -18,13 +18,13 @@ import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions -abstract class AbstractAnalysisApiSignatureSubstitutionTest : AbstractAnalysisApiSingleFileTest() { - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { - val declaration = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(ktFile) +abstract class AbstractAnalysisApiSignatureSubstitutionTest : AbstractAnalysisApiBasedTest() { + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { + val declaration = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(mainFile) val actual = analyseForTest(declaration) { val symbol = declaration.getSymbolOfType() - val substitutor = SubstitutionParser.parseSubstitutor(ktFile, declaration) + val substitutor = SubstitutionParser.parseSubstitutor(mainFile, declaration) val signatureBeforeSubstitution = symbol.asSignature() val signatureAfterSubstitution = signatureBeforeSubstitution.substitute(substitutor) diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/signatureSubstitution/AbstractAnalysisApiSymbolAsSignatureTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/signatureSubstitution/AbstractAnalysisApiSymbolAsSignatureTest.kt index 0f170379526..98a8ef6a3c4 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/signatureSubstitution/AbstractAnalysisApiSymbolAsSignatureTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/signatureSubstitution/AbstractAnalysisApiSymbolAsSignatureTest.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ @@ -8,7 +8,7 @@ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.signat import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.stringRepresentation import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.analysis.api.symbols.getSymbolOfType -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider import org.jetbrains.kotlin.analysis.utils.printer.prettyPrint import org.jetbrains.kotlin.psi.KtDeclaration @@ -17,9 +17,9 @@ import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions -abstract class AbstractAnalysisApiSymbolAsSignatureTest : AbstractAnalysisApiSingleFileTest() { - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { - val declaration = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(ktFile) +abstract class AbstractAnalysisApiSymbolAsSignatureTest : AbstractAnalysisApiBasedTest() { + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { + val declaration = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(mainFile) val actual = analyseForTest(declaration) { val symbol = declaration.getSymbolOfType() val signature = symbol.asSignature() diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/signatureSubstitution/AbstractAnalysisApiSymbolSubstitutionTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/signatureSubstitution/AbstractAnalysisApiSymbolSubstitutionTest.kt index caf31c8383c..5a305c2da29 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/signatureSubstitution/AbstractAnalysisApiSymbolSubstitutionTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/signatureSubstitution/AbstractAnalysisApiSymbolSubstitutionTest.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ @@ -8,7 +8,7 @@ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.signat import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.stringRepresentation import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.analysis.api.symbols.getSymbolOfType -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.analysis.test.framework.services.SubstitutionParser import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider import org.jetbrains.kotlin.analysis.utils.printer.prettyPrint @@ -18,13 +18,13 @@ import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions -abstract class AbstractAnalysisApiSymbolSubstitutionTest : AbstractAnalysisApiSingleFileTest() { - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { - val declaration = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(ktFile) +abstract class AbstractAnalysisApiSymbolSubstitutionTest : AbstractAnalysisApiBasedTest() { + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { + val declaration = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(mainFile) val actual = analyseForTest(declaration) { val symbol = declaration.getSymbolOfType() - val substitutor = SubstitutionParser.parseSubstitutor(ktFile, declaration) + val substitutor = SubstitutionParser.parseSubstitutor(mainFile, declaration) val signature = symbol.substitute(substitutor) prettyPrint { diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/smartCastProvider/AbstractHLSmartCastInfoTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/smartCastProvider/AbstractHLSmartCastInfoTest.kt index 45004c76031..5db5f99313f 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/smartCastProvider/AbstractHLSmartCastInfoTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/smartCastProvider/AbstractHLSmartCastInfoTest.kt @@ -1,11 +1,11 @@ /* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.smartCastProvider -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider import org.jetbrains.kotlin.analysis.test.framework.utils.executeOnPooledThreadInReadAction import org.jetbrains.kotlin.psi.KtExpression @@ -15,9 +15,9 @@ import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions import org.jetbrains.kotlin.types.Variance -abstract class AbstractHLSmartCastInfoTest : AbstractAnalysisApiSingleFileTest() { - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { - val expression = testServices.expressionMarkerProvider.getSelectedElement(ktFile) as KtExpression +abstract class AbstractHLSmartCastInfoTest : AbstractAnalysisApiBasedTest() { + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { + val expression = testServices.expressionMarkerProvider.getSelectedElement(mainFile) as KtExpression val actual = executeOnPooledThreadInReadAction { analyseForTest(expression) { val smartCastInfo = expression.getSmartCastInfo() diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/substututorFactory/AbstractSubstitutorBuilderTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/substututorFactory/AbstractSubstitutorBuilderTest.kt index 102ff03c53e..e6123045e67 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/substututorFactory/AbstractSubstitutorBuilderTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/substututorFactory/AbstractSubstitutorBuilderTest.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ @@ -10,7 +10,7 @@ import org.jetbrains.kotlin.analysis.api.components.buildSubstitutor import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.stringRepresentation import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.analysis.api.symbols.getSymbolOfType -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider import org.jetbrains.kotlin.analysis.test.framework.services.getSymbolByName import org.jetbrains.kotlin.analysis.utils.printer.prettyPrint @@ -21,17 +21,17 @@ import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions -abstract class AbstractSubstitutorBuilderTest : AbstractAnalysisApiSingleFileTest() { - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { - val declaration = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(ktFile) +abstract class AbstractSubstitutorBuilderTest : AbstractAnalysisApiBasedTest() { + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { + val declaration = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(mainFile) val actual = analyseForTest(declaration) { val symbol = declaration.getSymbolOfType() val substitutor = buildSubstitutor { - substitution(getSymbolByName(ktFile, "A"), builtinTypes.INT) - substitution(getSymbolByName(ktFile, "B"), builtinTypes.LONG) + substitution(getSymbolByName(mainFile, "A"), builtinTypes.INT) + substitution(getSymbolByName(mainFile, "B"), builtinTypes.LONG) substitution( - getSymbolByName(ktFile, "C"), + getSymbolByName(mainFile, "C"), buildClassType(StandardClassIds.List) { argument(builtinTypes.STRING) } diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/symbolDeclarationRenderer/AbstractRendererTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/symbolDeclarationRenderer/AbstractRendererTest.kt index 42908cc579f..2f09a914783 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/symbolDeclarationRenderer/AbstractRendererTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/symbolDeclarationRenderer/AbstractRendererTest.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ @@ -11,15 +11,15 @@ import org.jetbrains.kotlin.analysis.api.renderer.declarations.impl.KtDeclaratio import org.jetbrains.kotlin.analysis.api.renderer.declarations.renderers.KtClassifierBodyRenderer import org.jetbrains.kotlin.analysis.api.symbols.KtDeclarationSymbol import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSymbolWithMembers -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.analysis.test.framework.utils.executeOnPooledThreadInReadAction import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions -abstract class AbstractRendererTest : AbstractAnalysisApiSingleFileTest() { - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { +abstract class AbstractRendererTest : AbstractAnalysisApiBasedTest() { + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { val renderer = KtDeclarationRendererForSource.WITH_SHORT_NAMES.with { classifierBodyRenderer = KtClassifierBodyRenderer.BODY_WITH_MEMBERS bodyMemberScopeSorter = object : KtRendererBodyMemberScopeSorter { @@ -34,7 +34,7 @@ abstract class AbstractRendererTest : AbstractAnalysisApiSingleFileTest() { val actual = executeOnPooledThreadInReadAction { buildString { - ktFile.declarations.forEach { declaration -> + mainFile.declarations.forEach { declaration -> analyseForTest(declaration) { append(declaration.getSymbol().render(renderer)) appendLine() diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/symbolDeclarationRenderer/AbstractSymbolRenderingByReferenceTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/symbolDeclarationRenderer/AbstractSymbolRenderingByReferenceTest.kt index 60524fe3ba9..477350dc490 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/symbolDeclarationRenderer/AbstractSymbolRenderingByReferenceTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/symbolDeclarationRenderer/AbstractSymbolRenderingByReferenceTest.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ @@ -7,7 +7,7 @@ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.symbol import org.jetbrains.kotlin.analysis.api.renderer.declarations.impl.KtDeclarationRendererForDebug.WITH_QUALIFIED_NAMES_DENOTABLE import org.jetbrains.kotlin.analysis.api.symbols.KtDeclarationSymbol -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider import org.jetbrains.kotlin.analysis.test.framework.utils.executeOnPooledThreadInReadAction import org.jetbrains.kotlin.idea.references.mainReference @@ -17,15 +17,11 @@ import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions -abstract class AbstractSymbolRenderingByReferenceTest : AbstractAnalysisApiSingleFileTest() { - override fun doTestByFileStructure( - ktFile: KtFile, - module: TestModule, - testServices: TestServices, - ) { +abstract class AbstractSymbolRenderingByReferenceTest : AbstractAnalysisApiBasedTest() { + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { val renderedString = executeOnPooledThreadInReadAction { - analyseForTest(ktFile) { - val referenceExpression = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(ktFile) + analyseForTest(mainFile) { + val referenceExpression = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(mainFile) val ktSymbol = referenceExpression.mainReference.resolveToSymbol() testServices.assertions.assertNotNull(ktSymbol) testServices.assertions.assertTrue(ktSymbol is KtDeclarationSymbol) diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/symbolInfoProvider/AbstractAnnotationApplicableTargetsTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/symbolInfoProvider/AbstractAnnotationApplicableTargetsTest.kt index fca9e4b502e..1bba49e97fe 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/symbolInfoProvider/AbstractAnnotationApplicableTargetsTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/symbolInfoProvider/AbstractAnnotationApplicableTargetsTest.kt @@ -1,11 +1,11 @@ /* - * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.symbolInfoProvider -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider import org.jetbrains.kotlin.psi.KtAnnotationEntry import org.jetbrains.kotlin.psi.KtFile @@ -13,9 +13,9 @@ import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions -abstract class AbstractAnnotationApplicableTargetsTest : AbstractAnalysisApiSingleFileTest() { - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { - val annotationEntry = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(ktFile) +abstract class AbstractAnnotationApplicableTargetsTest : AbstractAnalysisApiBasedTest() { + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { + val annotationEntry = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(mainFile) val actual = analyseForTest(annotationEntry) { val annotationClassSymbol = annotationEntry.typeReference?.getKtType()?.expandedClassSymbol!! val applicableTargetsInOrder = diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/typeCreator/AbstractBuildClassTypeTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/typeCreator/AbstractBuildClassTypeTest.kt index f29bf01ad02..c2b86307498 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/typeCreator/AbstractBuildClassTypeTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/typeCreator/AbstractBuildClassTypeTest.kt @@ -1,22 +1,23 @@ /* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.typeCreator import org.jetbrains.kotlin.analysis.api.renderer.types.impl.KtTypeRendererForDebug -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.analysis.test.framework.services.TypeParser import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder import org.jetbrains.kotlin.test.directives.model.SimpleDirectivesContainer +import org.jetbrains.kotlin.test.directives.model.singleValue import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions import org.jetbrains.kotlin.types.Variance -abstract class AbstractBuildClassTypeTest : AbstractAnalysisApiSingleFileTest() { +abstract class AbstractBuildClassTypeTest : AbstractAnalysisApiBasedTest() { override fun configureTest(builder: TestConfigurationBuilder) { super.configureTest(builder) with(builder) { @@ -24,15 +25,20 @@ abstract class AbstractBuildClassTypeTest : AbstractAnalysisApiSingleFileTest() } } - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { - val typeString = module.directives[Directives.CLASS_TYPE].singleOrNull() - ?: error("${Directives.CLASS_TYPE} directive is not defined") - - val actual = analyseForTest(ktFile) { - val ktType = TypeParser.parseTypeFromString(typeString, ktFile, ktFile) + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { + val typeString = mainModule.directives.singleValue(Directives.CLASS_TYPE) + val actual = analyseForTest(mainFile) { + val ktType = TypeParser.parseTypeFromString(typeString, mainFile, mainFile) buildString { appendLine("originalTypeString: $typeString") - appendLine("ktType: ${ktType.render(renderer = KtTypeRendererForDebug.WITH_QUALIFIED_NAMES, position = Variance.INVARIANT)}") + appendLine( + "ktType: ${ + ktType.render( + renderer = KtTypeRendererForDebug.WITH_QUALIFIED_NAMES, + position = Variance.INVARIANT, + ) + }" + ) } } diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/typeCreator/AbstractTypeParameterTypeTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/typeCreator/AbstractTypeParameterTypeTest.kt index b0cc91a2da4..e7d06200e82 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/typeCreator/AbstractTypeParameterTypeTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/typeCreator/AbstractTypeParameterTypeTest.kt @@ -1,12 +1,12 @@ /* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.typeCreator import org.jetbrains.kotlin.analysis.api.components.buildTypeParameterType -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtTypeParameter @@ -15,9 +15,9 @@ import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions import org.jetbrains.kotlin.types.Variance -abstract class AbstractTypeParameterTypeTest : AbstractAnalysisApiSingleFileTest() { - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { - val expressionAtCaret = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(ktFile) as KtTypeParameter +abstract class AbstractTypeParameterTypeTest : AbstractAnalysisApiBasedTest() { + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { + val expressionAtCaret = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(mainFile) as KtTypeParameter val actual = analyseForTest(expressionAtCaret) { val symbol = expressionAtCaret.getTypeParameterSymbol() diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/typeInfoProvider/AbstractDoubleColonReceiverTypeTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/typeInfoProvider/AbstractDoubleColonReceiverTypeTest.kt index a3d798c5eb4..6cb00c3c5be 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/typeInfoProvider/AbstractDoubleColonReceiverTypeTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/typeInfoProvider/AbstractDoubleColonReceiverTypeTest.kt @@ -1,11 +1,11 @@ /* - * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.typeInfoProvider -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider import org.jetbrains.kotlin.analysis.test.framework.utils.executeOnPooledThreadInReadAction import org.jetbrains.kotlin.psi.KtDoubleColonExpression @@ -15,9 +15,9 @@ import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions import org.jetbrains.kotlin.types.Variance -abstract class AbstractDoubleColonReceiverTypeTest : AbstractAnalysisApiSingleFileTest() { - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { - val expressionAtCaret = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(ktFile) as KtDoubleColonExpression +abstract class AbstractDoubleColonReceiverTypeTest : AbstractAnalysisApiBasedTest() { + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { + val expressionAtCaret = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(mainFile) as KtDoubleColonExpression val type = executeOnPooledThreadInReadAction { analyseForTest(expressionAtCaret) { diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/typeInfoProvider/AbstractFunctionClassKindTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/typeInfoProvider/AbstractFunctionClassKindTest.kt index b5e353b0385..696e5b7f0a5 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/typeInfoProvider/AbstractFunctionClassKindTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/typeInfoProvider/AbstractFunctionClassKindTest.kt @@ -1,11 +1,11 @@ /* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.typeInfoProvider -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider import org.jetbrains.kotlin.analysis.test.framework.utils.executeOnPooledThreadInReadAction import org.jetbrains.kotlin.psi.KtExpression @@ -15,10 +15,9 @@ import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions import org.jetbrains.kotlin.types.Variance -abstract class AbstractFunctionClassKindTest : AbstractAnalysisApiSingleFileTest() { - - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { - val expressionAtCaret = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(ktFile) as KtExpression +abstract class AbstractFunctionClassKindTest : AbstractAnalysisApiBasedTest() { + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { + val expressionAtCaret = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(mainFile) as KtExpression val (type, functionClassKind) = executeOnPooledThreadInReadAction { analyseForTest(expressionAtCaret) { diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/typeInfoProvider/AbstractIsDenotableTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/typeInfoProvider/AbstractIsDenotableTest.kt index 70e04aad6d8..8b5b14c91b8 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/typeInfoProvider/AbstractIsDenotableTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/typeInfoProvider/AbstractIsDenotableTest.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ @@ -7,7 +7,9 @@ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.typeIn import com.intellij.psi.PsiElement import com.intellij.psi.impl.source.tree.LeafPsiElement -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest +import org.jetbrains.kotlin.analysis.test.framework.project.structure.getKtFiles +import org.jetbrains.kotlin.analysis.test.framework.project.structure.ktModuleProvider import org.jetbrains.kotlin.analysis.utils.printer.parentOfType import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.psi.KtAnnotatedExpression @@ -26,10 +28,12 @@ import org.jetbrains.kotlin.test.services.assertions import org.jetbrains.kotlin.types.Variance import java.io.File -abstract class AbstractIsDenotableTest : AbstractAnalysisApiSingleFileTest() { +abstract class AbstractIsDenotableTest : AbstractAnalysisApiBasedTest() { val denotableName = Name.identifier("Denotable") val undenotableName = Name.identifier("Nondenotable") - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { + + override fun doTestByMainModuleAndOptionalMainFile(mainFile: KtFile?, mainModule: TestModule, testServices: TestServices) { + val ktFile = mainFile ?: testServices.ktModuleProvider.getKtFiles(mainModule).first() val actualText = buildString { ktFile.accept(object : KtTreeVisitorVoid() { override fun visitElement(element: PsiElement) { diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/typeProvider/AbstractAnalysisApiGetSuperTypesTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/typeProvider/AbstractAnalysisApiGetSuperTypesTest.kt index ccee4d948c5..ac717191fc8 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/typeProvider/AbstractAnalysisApiGetSuperTypesTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/typeProvider/AbstractAnalysisApiGetSuperTypesTest.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ @@ -8,7 +8,7 @@ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.typePr import org.jetbrains.kotlin.analysis.api.analyze import org.jetbrains.kotlin.analysis.api.renderer.types.impl.KtTypeRendererForDebug import org.jetbrains.kotlin.analysis.api.types.KtType -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider import org.jetbrains.kotlin.analysis.test.framework.utils.executeOnPooledThreadInReadAction import org.jetbrains.kotlin.psi.KtExpression @@ -18,9 +18,9 @@ import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions import org.jetbrains.kotlin.types.Variance -abstract class AbstractAnalysisApiGetSuperTypesTest : AbstractAnalysisApiSingleFileTest(){ - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { - val expression = testServices.expressionMarkerProvider.getSelectedElement(ktFile) +abstract class AbstractAnalysisApiGetSuperTypesTest : AbstractAnalysisApiBasedTest() { + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { + val expression = testServices.expressionMarkerProvider.getSelectedElement(mainFile) expression as? KtExpression ?: error("unexpected expression kind ${expression::class}") val actual = executeOnPooledThreadInReadAction { diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/typeProvider/AbstractHasCommonSubtypeTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/typeProvider/AbstractHasCommonSubtypeTest.kt index 2e9031a6f93..aaf7a78b76c 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/typeProvider/AbstractHasCommonSubtypeTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/typeProvider/AbstractHasCommonSubtypeTest.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ @@ -7,7 +7,9 @@ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.typePr import com.intellij.openapi.util.text.StringUtil import com.intellij.psi.PsiElement -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest +import org.jetbrains.kotlin.analysis.test.framework.project.structure.getKtFiles +import org.jetbrains.kotlin.analysis.test.framework.project.structure.ktModuleProvider import org.jetbrains.kotlin.psi.KtCallExpression import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtTreeVisitorVoid @@ -21,8 +23,9 @@ import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions import java.io.File -abstract class AbstractHasCommonSubtypeTest : AbstractAnalysisApiSingleFileTest() { - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { +abstract class AbstractHasCommonSubtypeTest : AbstractAnalysisApiBasedTest() { + override fun doTestByMainModuleAndOptionalMainFile(mainFile: KtFile?, mainModule: TestModule, testServices: TestServices) { + val ktFile = mainFile ?: testServices.ktModuleProvider.getKtFiles(mainModule).first() val errors = mutableListOf() val originalText = ktFile.text val actualTextBuilder = StringBuilder() diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/typeProvider/AbstractTypeReferenceTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/typeProvider/AbstractTypeReferenceTest.kt index e829f74968f..cad142f598e 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/typeProvider/AbstractTypeReferenceTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/typeProvider/AbstractTypeReferenceTest.kt @@ -1,11 +1,11 @@ /* - * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.typeProvider -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtTypeReference @@ -14,9 +14,9 @@ import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions import org.jetbrains.kotlin.types.Variance -abstract class AbstractTypeReferenceTest : AbstractAnalysisApiSingleFileTest() { - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { - val expressionAtCaret = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(ktFile) as KtTypeReference +abstract class AbstractTypeReferenceTest : AbstractAnalysisApiBasedTest() { + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { + val expressionAtCaret = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(mainFile) as KtTypeReference val actual = analyseForTest(expressionAtCaret) { val ktType = expressionAtCaret.getKtType() diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/types/AbstractAnalysisApiSubstitutorsTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/types/AbstractAnalysisApiSubstitutorsTest.kt index 47a9930dca3..51d0067fda2 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/types/AbstractAnalysisApiSubstitutorsTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/types/AbstractAnalysisApiSubstitutorsTest.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ @@ -7,7 +7,7 @@ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.types import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.analysis.api.symbols.getSymbolOfType -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.analysis.test.framework.services.SubstitutionParser import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider import org.jetbrains.kotlin.analysis.utils.printer.prettyPrint @@ -18,11 +18,11 @@ import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions import org.jetbrains.kotlin.types.Variance -abstract class AbstractAnalysisApiSubstitutorsTest : AbstractAnalysisApiSingleFileTest() { - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { - val declaration = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(ktFile) +abstract class AbstractAnalysisApiSubstitutorsTest : AbstractAnalysisApiBasedTest() { + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { + val declaration = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(mainFile) val actual = analyseForTest(declaration) { - val substitutor = SubstitutionParser.parseSubstitutor(ktFile, declaration) + val substitutor = SubstitutionParser.parseSubstitutor(mainFile, declaration) val symbol = declaration.getSymbolOfType() val type = symbol.returnType val substituted = substitutor.substitute(type) diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/types/AbstractTypeTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/types/AbstractTypeTest.kt index f03fbc89ad7..c56bc4f01bd 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/types/AbstractTypeTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/types/AbstractTypeTest.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ @@ -8,16 +8,16 @@ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.types import org.jetbrains.kotlin.analysis.api.KtAnalysisSession import org.jetbrains.kotlin.analysis.api.symbols.DebugSymbolRenderer import org.jetbrains.kotlin.analysis.api.types.KtType -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions -abstract class AbstractTypeTest : AbstractAnalysisApiSingleFileTest() { - override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { - val actual = analyseForTest(ktFile.declarations.first()) { - val type = getType(ktFile, module, testServices) +abstract class AbstractTypeTest : AbstractAnalysisApiBasedTest() { + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { + val actual = analyseForTest(mainFile.declarations.first()) { + val type = getType(mainFile, mainModule, testServices) DebugSymbolRenderer(renderTypeByProperties = true).renderType(type) } testServices.assertions.assertEqualsToTestDataFileSibling(actual) diff --git a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/base/AbstractAnalysisApiSingleFileTest.kt b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/base/AbstractAnalysisApiSingleFileTest.kt deleted file mode 100644 index caf417fa006..00000000000 --- a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/base/AbstractAnalysisApiSingleFileTest.kt +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -package org.jetbrains.kotlin.analysis.test.framework.base - -import org.jetbrains.kotlin.psi.KtFile -import org.jetbrains.kotlin.test.model.TestModule -import org.jetbrains.kotlin.test.services.TestServices - -abstract class AbstractAnalysisApiSingleFileTest : AbstractAnalysisApiBasedTest() { - override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { - doTestByFileStructure(mainFile, mainModule, testServices) - } - - protected abstract fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) -} \ No newline at end of file