diff --git a/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/analysisApi.kt b/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/analysisApi.kt index ade3f8581df..0b26071fd81 100644 --- a/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/analysisApi.kt +++ b/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/analysisApi.kt @@ -55,7 +55,6 @@ import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.typePro import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.typeProvider.AbstractHasCommonSubtypeTest import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.typeProvider.AbstractTypeReferenceTest import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.references.* -import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.references.AbstractReferenceImportAliasTest import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.symbols.* import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.types.AbstractAnalysisApiSubstitutorsTest import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.types.AbstractBuiltInTypeTest @@ -69,8 +68,7 @@ import org.jetbrains.kotlin.generators.tests.analysis.api.dsl.* import org.jetbrains.kotlin.generators.util.TestGeneratorUtil internal fun AnalysisApiTestGroup.generateAnalysisApiTests() { - test( - AbstractReferenceResolveTest::class, + test( filter = testModuleKindIs(TestModuleKind.Source, TestModuleKind.ScriptSource, TestModuleKind.LibrarySource) and analysisApiModeIs(AnalysisApiMode.Ide, AnalysisApiMode.Standalone), ) { data -> @@ -91,8 +89,7 @@ internal fun AnalysisApiTestGroup.generateAnalysisApiTests() { } } - test( - AbstractDanglingFileReferenceResolveTest::class, + test( filter = frontendIs(FrontendKind.Fir) and testModuleKindIs(TestModuleKind.Source, TestModuleKind.LibrarySource) ) { @@ -106,15 +103,15 @@ internal fun AnalysisApiTestGroup.generateAnalysisApiTests() { and analysisSessionModeIs(AnalysisSessionMode.Normal) and analysisApiModeIs(AnalysisApiMode.Ide) ) { - test(AbstractCompilerFacilityTest::class, filter = testModuleKindIs(TestModuleKind.Source, TestModuleKind.LibrarySource)) { + test(filter = testModuleKindIs(TestModuleKind.Source, TestModuleKind.LibrarySource)) { model("compilation", pattern = TestGeneratorUtil.KT) } - test(AbstractMultiModuleCompilerFacilityTest::class, filter = testModuleKindIs(TestModuleKind.Source)) { + test(filter = testModuleKindIs(TestModuleKind.Source)) { model("compilationMultiModule", pattern = TestGeneratorUtil.KT) } - test(AbstractFirPluginPrototypeMultiModuleCompilerFacilityTest::class, filter = testModuleKindIs(TestModuleKind.Source)) { + test(filter = testModuleKindIs(TestModuleKind.Source)) { model("firPluginPrototypeMultiModule", pattern = TestGeneratorUtil.KT) } } @@ -139,7 +136,7 @@ private fun AnalysisApiTestGroup.generateResolveExtensionsTests() { frontendIs(FrontendKind.Fir) and testModuleKindIs(TestModuleKind.Source) ) { - test(AbstractReferenceResolveWithResolveExtensionTest::class) { + test { model(it, "referenceResolve") } } @@ -147,29 +144,27 @@ private fun AnalysisApiTestGroup.generateResolveExtensionsTests() { private fun AnalysisApiTestGroup.generateAnalysisApiNonComponentsTests() { group("symbols", filter = analysisSessionModeIs(AnalysisSessionMode.Normal)) { - test(AbstractSymbolByPsiTest::class) { + test { model(it, "symbolByPsi") } - test(AbstractSymbolByJavaPsiTest::class, filter = frontendIs(FrontendKind.Fir)) { + test(filter = frontendIs(FrontendKind.Fir)) { model(it, "symbolByJavaPsi") } - test(AbstractSingleSymbolByPsiTest::class) { + test { model(it, "singleSymbolByPsi") } - test(AbstractSymbolRestoreFromDifferentModuleTest::class) { + test { model(it, "symbolRestoreFromDifferentModule") } - test(AbstractMultiModuleSymbolByPsiTest::class) { + test { model(it, "multiModuleSymbolByPsi") } - test( - AbstractSymbolByFqNameTest::class - ) { + test { when (it.analysisApiMode) { AnalysisApiMode.Ide -> model(it, "symbolByFqName") @@ -178,7 +173,7 @@ private fun AnalysisApiTestGroup.generateAnalysisApiNonComponentsTests() { } } - test(AbstractSymbolByReferenceTest::class) { + test { when (it.analysisApiMode) { AnalysisApiMode.Ide -> model(it, "symbolByReference") @@ -189,44 +184,42 @@ private fun AnalysisApiTestGroup.generateAnalysisApiNonComponentsTests() { } group("types", filter = analysisSessionModeIs(AnalysisSessionMode.Normal)) { - test(AbstractTypeByDeclarationReturnTypeTest::class) { + test { model(it, "byDeclarationReturnType") } - test(AbstractBuiltInTypeTest::class) { + test { model(it, "builtins") } } group("annotations") { - test(AbstractAnalysisApiAnnotationsOnTypesTest::class) { + test { model(it, "annotationsOnTypes") } - test(AbstractAnalysisApiAnnotationsOnDeclarationsTest::class) { + test { model(it, "annotationsOnDeclaration") } - test(AbstractAnalysisApiSpecificAnnotationOnDeclarationTest::class) { + test { model(it, "specificAnnotations") } - test( - AbstractAnalysisApiAnnotationsOnFilesTest::class, + test( filter = analysisSessionModeIs(AnalysisSessionMode.Normal), ) { model(it, "annotationsOnFiles") } - test(AbstractAnalysisApiAnnotationsOnDeclarationsWithMetaTest::class) { + test { model(it, "metaAnnotations") } } group("imports", filter = frontendIs(FrontendKind.Fir)) { - test( - AbstractReferenceImportAliasTest::class, + test( filter = analysisSessionModeIs(AnalysisSessionMode.Normal) ) { model(it, "importAliases") @@ -234,7 +227,7 @@ private fun AnalysisApiTestGroup.generateAnalysisApiNonComponentsTests() { } group("substitutors", filter = frontendIs(FrontendKind.Fir)) { - test(AbstractAnalysisApiSubstitutorsTest::class) { + test { model(it, "typeSubstitution") } } @@ -242,15 +235,13 @@ private fun AnalysisApiTestGroup.generateAnalysisApiNonComponentsTests() { private fun AnalysisApiTestGroup.generateAnalysisApiStandaloneTests() { group("standalone") { - test( - AbstractPsiDeclarationProviderTest::class, + test( filter = testModuleKindIs(TestModuleKind.Source) ) { model(it, "source") } - test( - AbstractPsiDeclarationProviderTest::class, + test( filter = testModuleKindIs(TestModuleKind.LibraryBinaryDecompiled) ) { model(it, "binary") @@ -260,7 +251,7 @@ private fun AnalysisApiTestGroup.generateAnalysisApiStandaloneTests() { private fun AnalysisApiTestGroup.generateAnalysisApiComponentsTests() { component("callResolver", filter = analysisSessionModeIs(AnalysisSessionMode.Normal)) { - test(AbstractResolveCallTest::class) { + test { when (it.analysisApiMode) { AnalysisApiMode.Ide -> model(it, "resolveCall") @@ -269,15 +260,13 @@ private fun AnalysisApiTestGroup.generateAnalysisApiComponentsTests() { } } - test( - AbstractResolveCandidatesTest::class - ) { + test { model(it, "resolveCandidates") } } component("multiModuleCallResolver", filter = analysisSessionModeIs(AnalysisSessionMode.Normal)) { - test(AbstractMultiModuleResolveCallTest::class, filter = frontendIs(FrontendKind.Fir)) { + test(filter = frontendIs(FrontendKind.Fir)) { when (it.analysisApiMode) { AnalysisApiMode.Ide -> model(it, "resolveCall") @@ -288,64 +277,59 @@ private fun AnalysisApiTestGroup.generateAnalysisApiComponentsTests() { } component("compileTimeConstantProvider") { - test(AbstractCompileTimeConstantEvaluatorTest::class) { + test { model(it, "evaluate") } } component("expressionInfoProvider") { - test(AbstractWhenMissingCasesTest::class) { + test { model(it, "whenMissingCases") } - test(AbstractReturnTargetSymbolTest::class) { + test { model(it, "returnExpressionTargetSymbol") } - test(AbstractIsUsedAsExpressionTest::class) { + test { model(it, "isUsedAsExpression") } } component("referenceShortener", filter = frontendIs(FrontendKind.Fir) and analysisSessionModeIs(AnalysisSessionMode.Normal)) { - test(AbstractReferenceShortenerTest::class) { + test { model(it, "shortenRange") } - test(AbstractReferenceShortenerForWholeFileTest::class) { + test { model(it, "shortenWholeFile") } } component("expressionTypeProvider") { - test(AbstractExpectedExpressionTypeTest::class) { + test { model(it, "expectedExpressionType") } - test( - AbstractHLExpressionTypeTest::class - ) { + test { model(it, "expressionType") } - test( - AbstractDeclarationReturnTypeTest::class - ) { + test { model(it, "declarationReturnType") } } component("diagnosticsProvider", filter = analysisSessionModeIs(AnalysisSessionMode.Normal)) { - test(AbstractCollectDiagnosticsTest::class) { + test { model(it, "diagnostics") } - test(AbstractDanglingFileCollectDiagnosticsTest::class, filter = frontendIs(FrontendKind.Fir)) { + test(filter = frontendIs(FrontendKind.Fir)) { model(it, "diagnostics") } - test( - AbstractCodeFragmentCollectDiagnosticsTest::class, + test( filter = testModuleKindIs(TestModuleKind.Source) and frontendIs(FrontendKind.Fir), ) { model("codeFragmentDiagnostics", pattern = TestGeneratorUtil.KT_WITHOUT_DOTS_IN_NAME) @@ -354,26 +338,25 @@ private fun AnalysisApiTestGroup.generateAnalysisApiComponentsTests() { // for K1, symbols do not have a proper equality implementation, so the tests are failing component("containingDeclarationProvider", filter = frontendIs(FrontendKind.Fir)) { - test(AbstractContainingDeclarationProviderByPsiTest::class) { + test { model(it, "containingDeclarationByPsi") } - test(AbstractContainingDeclarationProviderByMemberScopeTest::class) { + test { model(it, "containingDeclarationFromMemberScope") } - test(AbstractContainingDeclarationProviderForSetterParameterTest::class) { + test { model(it, "containingDeclarationForSetterParameter") } - test(AbstractContainingDeclarationProviderByDelegatedMemberScopeTest::class) { + test { model(it, "containingDeclarationByDelegatedMemberScope") } } component("importOptimizer") { - test( - AbstractAnalysisApiImportOptimizerTest::class, + test( filter = analysisSessionModeIs(AnalysisSessionMode.Normal) and frontendIs(FrontendKind.Fir), ) { model(it, "analyseImports") @@ -381,114 +364,114 @@ private fun AnalysisApiTestGroup.generateAnalysisApiComponentsTests() { } component("multiplatformInfoProvider") { - test(AbstractExpectForActualTest::class) { + test { model(it, "expectForActual") } } component("psiTypeProvider") { - test(AbstractAnalysisApiPsiTypeProviderTest::class) { + test { model(it, "psiType/forDeclaration") } - test(AbstractAnalysisApiExpressionPsiTypeProviderTest::class, filter = frontendIs(FrontendKind.Fir)) { + test(filter = frontendIs(FrontendKind.Fir)) { model(it, "psiType/forExpression") } - test(AbstractAnalysisApiKtTypeByPsiTypeProviderTest::class, filter = frontendIs(FrontendKind.Fir)) { + test(filter = frontendIs(FrontendKind.Fir)) { model(it, "psiType/asKtType") } } component("resolveExtensionInfoProvider", filter = frontendIs(FrontendKind.Fir)) { - test(AbstractResolveExtensionInfoProviderTest::class) { + test { model(it, "extensionScopeWithPsi") } } component("smartCastProvider") { - test(AbstractHLSmartCastInfoTest::class) { + test { model(it, "smartCastInfo") } } component("symbolDeclarationOverridesProvider") { - test(AbstractOverriddenDeclarationProviderTest::class) { + test { model(it, "overriddenSymbols") } - test(AbstractIsSubclassOfTest::class) { + test { model(it, "isSubclassOf") } } component("symbolDeclarationRenderer") { - test(AbstractRendererTest::class) { + test { model(it, "renderDeclaration") } - test(AbstractSymbolRenderingByReferenceTest::class, analysisApiModeIs(AnalysisApiMode.Ide, AnalysisApiMode.Standalone)) { + test(analysisApiModeIs(AnalysisApiMode.Ide, AnalysisApiMode.Standalone)) { model(it, "symbolRenderingByReference") } } component("symbolInfoProvider") { - test(AbstractAnnotationApplicableTargetsTest::class) { + test { model(it, "annotationApplicableTargets") } } component("typeCreator") { - test(AbstractTypeParameterTypeTest::class) { + test { model(it, "typeParameter") } - test(AbstractBuildClassTypeTest::class, filter = analysisSessionModeIs(AnalysisSessionMode.Normal)/*no non-file context element*/) { + test(filter = analysisSessionModeIs(AnalysisSessionMode.Normal)/*no non-file context element*/) { model(it, "classType") } } component("typeInfoProvider") { - test(AbstractFunctionClassKindTest::class) { + test { model(it, "functionClassKind") } - test(AbstractAnalysisApiGetSuperTypesTest::class, filter = frontendIs(FrontendKind.Fir)) { + test(filter = frontendIs(FrontendKind.Fir)) { model(it, "superTypes") } - test(AbstractDoubleColonReceiverTypeTest::class) { + test { model(it, "doubleColonReceiverType") } - test(AbstractIsDenotableTest::class) { + test { model(it, "isDenotable", excludedPattern = ".*\\.descriptors\\.kt$") } } component("typeProvider") { group(filter = analysisSessionModeIs(AnalysisSessionMode.Normal)) { - test(AbstractHasCommonSubtypeTest::class) { + test { model(it, "haveCommonSubtype") } } - test(AbstractTypeReferenceTest::class) { + test { model(it, "typeReference") } } component("signatureSubstitution") { group(filter = analysisSessionModeIs(AnalysisSessionMode.Normal) and frontendIs(FrontendKind.Fir)) { - test(AbstractAnalysisApiSymbolAsSignatureTest::class) { + test { model(it, "symbolAsSignature") } - test(AbstractAnalysisApiSymbolSubstitutionTest::class) { + test { model(it, "symbolSubstitution") } - test(AbstractAnalysisApiSignatureSubstitutionTest::class) { + test { model(it, "signatureSubstitution") } - test(AbstractAnalysisApiSignatureContractsTest::class) { + test { model(it, "signatureContracts") } } @@ -496,50 +479,48 @@ private fun AnalysisApiTestGroup.generateAnalysisApiComponentsTests() { component("substitutorFactory") { group(filter = analysisSessionModeIs(AnalysisSessionMode.Normal) and frontendIs(FrontendKind.Fir)) { - test(AbstractSubstitutorBuilderTest::class) { + test { model(it, "substitutorBuilder") } } } component("substitutorProvider", filter = frontendIs(FrontendKind.Fir)) { - test(AbstractCreateInheritanceTypeSubstitutorTest::class) { + test { model(it, "createInheritanceTypeSubstitutor") } } component("referenceResolveProvider") { - test(AbstractIsImplicitCompanionReferenceTest::class) { + test { model(it, "isImplicitReferenceToCompanion") } } component("scopeProvider") { group(filter = frontendIs(FrontendKind.Fir)) { - test(AbstractTypeScopeTest::class) { + test { model(it, "typeScope") } - test(AbstractScopeContextForPositionTest::class) { + test { model(it, "scopeContextForPosition") } - test(AbstractFileImportingScopeContextTest::class) { + test { model(it, "importingScopeContext") } } group(filter = analysisSessionModeIs(AnalysisSessionMode.Normal)) { - test( - AbstractSubstitutionOverridesUnwrappingTest::class, + test( filter = frontendIs(FrontendKind.Fir), ) { model(it, "substitutionOverridesUnwrapping") } - test( - AbstractMemberScopeTest::class, + test( filter = frontendIs(FrontendKind.Fir), ) { when (it.analysisApiMode) { @@ -550,37 +531,33 @@ private fun AnalysisApiTestGroup.generateAnalysisApiComponentsTests() { } } - test( - AbstractStaticMemberScopeTest::class, + test( filter = frontendIs(FrontendKind.Fir), ) { model(it, "staticMemberScope") } - test(AbstractFileScopeTest::class) { + test { model(it, "fileScopeTest") } - test(AbstractDelegateMemberScopeTest::class) { + test { model(it, "delegatedMemberScope") } - test( - AbstractDeclaredMemberScopeTest::class, + test( filter = frontendIs(FrontendKind.Fir), ) { model(it, "declaredMemberScope") } - test( - AbstractStaticDeclaredMemberScopeTest::class, + test( filter = frontendIs(FrontendKind.Fir), ) { model(it, "staticDeclaredMemberScope") } - test( - AbstractCombinedDeclaredMemberScopeTest::class, + test( filter = frontendIs(FrontendKind.Fir), ) { model(it, "combinedDeclaredMemberScope") diff --git a/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/dsl/AnalysisApiTestGroup.kt b/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/dsl/AnalysisApiTestGroup.kt index 8c9e7991a47..511dbf4c292 100644 --- a/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/dsl/AnalysisApiTestGroup.kt +++ b/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/dsl/AnalysisApiTestGroup.kt @@ -12,7 +12,6 @@ import org.jetbrains.kotlin.generators.TestGroup import org.jetbrains.kotlin.generators.TestGroupSuite import org.jetbrains.kotlin.generators.getDefaultSuiteTestClassName import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly -import kotlin.reflect.KClass class AnalysisApiTestGroup( private val generator: AnalysisApiTestGenerator, @@ -31,8 +30,15 @@ class AnalysisApiTestGroup( generator.suite.init() } + inline fun test( + noinline filter: TestFilter = { true }, + noinline init: TestGroup.TestClass.(data: AnalysisApiTestConfiguratorFactoryData) -> Unit, + ) { + test(T::class.java, filter, init) + } + fun test( - testClass: KClass<*>, + testClass: Class<*>, filter: TestFilter = { true }, init: TestGroup.TestClass.(data: AnalysisApiTestConfiguratorFactoryData) -> Unit, ) { @@ -69,7 +75,7 @@ internal fun TestGroup.TestClass.model( private fun TestGroup.analysisApiTestClass( data: AnalysisApiTestConfiguratorFactoryData, - testClass: KClass<*>, + testClass: Class<*>, init: TestGroup.TestClass.(data: AnalysisApiTestConfiguratorFactoryData) -> Unit ) { val factory = AnalysisApiConfiguratorFactoryProvider.getFactory(data) ?: return @@ -79,10 +85,10 @@ private fun TestGroup.analysisApiTestClass( val suiteTestClassName = buildString { append(fullPackage) append(getTestNameSuffix(data)) - append(getDefaultSuiteTestClassName(testClass.java.simpleName)) + append(getDefaultSuiteTestClassName(testClass.simpleName)) } - getDefaultSuiteTestClassName(testClass.java.simpleName) + getDefaultSuiteTestClassName(testClass.simpleName) testClass( @@ -104,7 +110,7 @@ private fun getTestNameSuffix(data: AnalysisApiTestConfiguratorFactoryData): Str } } -private fun getPackageName(data: AnalysisApiTestConfiguratorFactoryData, testClass: KClass<*>): String { +private fun getPackageName(data: AnalysisApiTestConfiguratorFactoryData, testClass: Class<*>): String { val basePrefix = buildString { append("org.jetbrains.kotlin.analysis.api.") if (data.analysisApiMode == AnalysisApiMode.Standalone) { @@ -113,7 +119,7 @@ private fun getPackageName(data: AnalysisApiTestConfiguratorFactoryData, testCla append(data.frontend.suffix.lowercase()) append(".test.cases.generated") } - val packagePrefix = "cases." + testClass.java.name + val packagePrefix = "cases." + testClass.name .substringAfter("test.cases.") .substringBeforeLast('.', "") diff --git a/generators/test-generator/tests/org/jetbrains/kotlin/generators/ReflectionBasedTargetBackendComputer.kt b/generators/test-generator/tests/org/jetbrains/kotlin/generators/ReflectionBasedTargetBackendComputer.kt index 0938139553e..0f14e40cb07 100644 --- a/generators/test-generator/tests/org/jetbrains/kotlin/generators/ReflectionBasedTargetBackendComputer.kt +++ b/generators/test-generator/tests/org/jetbrains/kotlin/generators/ReflectionBasedTargetBackendComputer.kt @@ -9,17 +9,13 @@ import org.jetbrains.kotlin.generators.model.DefaultTargetBackendComputer import org.jetbrains.kotlin.generators.model.TargetBackendComputer import org.jetbrains.kotlin.test.TargetBackend import org.jetbrains.kotlin.test.runners.RunnerWithTargetBackendForTestGeneratorMarker -import kotlin.reflect.KClass -import kotlin.reflect.full.createInstance -import kotlin.reflect.full.declaredMemberProperties -import kotlin.reflect.full.isSubclassOf +import java.lang.reflect.Modifier object ReflectionBasedTargetBackendComputer : TargetBackendComputer { - private val runnerMarkerKClass = RunnerWithTargetBackendForTestGeneratorMarker::class - private const val TARGET_BACKEND_PROPERTY_NAME = "targetBackend" + private val runnerMarkerKClass = RunnerWithTargetBackendForTestGeneratorMarker::class.java - override fun compute(definedTargetBackend: TargetBackend?, testKClass: KClass<*>): TargetBackend { - if (!testKClass.isSubclassOf(runnerMarkerKClass)) return DefaultTargetBackendComputer.compute(definedTargetBackend, testKClass) + override fun compute(definedTargetBackend: TargetBackend?, testKClass: Class<*>): TargetBackend { + if (!runnerMarkerKClass.isAssignableFrom(testKClass)) return DefaultTargetBackendComputer.compute(definedTargetBackend, testKClass) require(definedTargetBackend == null) { """ Test ${testKClass.simpleName} is inheritor of ${runnerMarkerKClass.simpleName} which means that @@ -27,14 +23,13 @@ object ReflectionBasedTargetBackendComputer : TargetBackendComputer { read from test runner class itself """.trimIndent() } - require(testKClass.isOpen) { + require(!Modifier.isFinal(testKClass.modifiers)) { """ Test runner ${testKClass.simpleName} which inherits from ${runnerMarkerKClass.simpleName} and used as base class for real test should have `open` modality """.trimIndent() } - val instance = testKClass.createInstance() as RunnerWithTargetBackendForTestGeneratorMarker - val kProperty = runnerMarkerKClass.declaredMemberProperties.single { it.name == TARGET_BACKEND_PROPERTY_NAME } - return kProperty.get(instance) as TargetBackend + val instance = testKClass.newInstance() as RunnerWithTargetBackendForTestGeneratorMarker + return instance.targetBackend } } diff --git a/generators/test-generator/tests/org/jetbrains/kotlin/generators/TestGenerationDSL.kt b/generators/test-generator/tests/org/jetbrains/kotlin/generators/TestGenerationDSL.kt index 53a1aebbb13..04072dd72fd 100644 --- a/generators/test-generator/tests/org/jetbrains/kotlin/generators/TestGenerationDSL.kt +++ b/generators/test-generator/tests/org/jetbrains/kotlin/generators/TestGenerationDSL.kt @@ -10,9 +10,7 @@ import org.jetbrains.kotlin.generators.util.TestGeneratorUtil import org.jetbrains.kotlin.generators.util.extractTagsFromDirectory import org.jetbrains.kotlin.test.TargetBackend import java.io.File -import java.util.concurrent.ForkJoinPool import java.util.regex.Pattern -import kotlin.reflect.KClass fun testGroupSuite( init: TestGroupSuite.() -> Unit @@ -68,13 +66,13 @@ class TestGroup( annotations: List = emptyList(), noinline init: TestClass.() -> Unit ) { - val testKClass = T::class - testClass(testKClass, testKClass.java.name, suiteTestClassName, useJunit4, annotations, init) + val testKClass = T::class.java + testClass(testKClass, testKClass.name, suiteTestClassName, useJunit4, annotations, init) } fun testClass( - testKClass: KClass<*>, - baseTestClassName: String = testKClass.java.name, + testKClass: Class<*>, + baseTestClassName: String = testKClass.name, suiteTestClassName: String = getDefaultSuiteTestClassName(baseTestClassName.substringAfterLast('.')), useJunit4: Boolean, annotations: List = emptyList(), @@ -84,7 +82,7 @@ class TestGroup( } inner class TestClass( - val testKClass: KClass<*>, + val testKClass: Class<*>, val baseTestClassName: String, val suiteTestClassName: String, val useJunit4: Boolean, diff --git a/generators/test-generator/tests/org/jetbrains/kotlin/generators/model/TargetBackendComputer.kt b/generators/test-generator/tests/org/jetbrains/kotlin/generators/model/TargetBackendComputer.kt index ea0c954aba7..2e1348fd35d 100644 --- a/generators/test-generator/tests/org/jetbrains/kotlin/generators/model/TargetBackendComputer.kt +++ b/generators/test-generator/tests/org/jetbrains/kotlin/generators/model/TargetBackendComputer.kt @@ -6,14 +6,13 @@ package org.jetbrains.kotlin.generators.model import org.jetbrains.kotlin.test.TargetBackend -import kotlin.reflect.KClass fun interface TargetBackendComputer { - fun compute(definedTargetBackend: TargetBackend?, testKClass: KClass<*>): TargetBackend + fun compute(definedTargetBackend: TargetBackend?, testKClass: Class<*>): TargetBackend } object DefaultTargetBackendComputer : TargetBackendComputer { - override fun compute(definedTargetBackend: TargetBackend?, testKClass: KClass<*>): TargetBackend { + override fun compute(definedTargetBackend: TargetBackend?, testKClass: Class<*>): TargetBackend { return definedTargetBackend ?: TargetBackend.ANY } }