From f844a860579408bda12581a755336a4c2ebc9e87 Mon Sep 17 00:00:00 2001 From: Sergej Jaskiewicz Date: Wed, 22 Nov 2023 14:37:09 +0100 Subject: [PATCH] [utils] Introduce the `bind` function and use it throughout --- .../test/framework/base/registerBaseTestServices.kt | 2 +- .../based/AbstractCompilerBasedNativeTestForFir.kt | 2 +- .../based/AbstractDiagnosticCompilerTestDataTest.kt | 2 +- .../based/AbstractLLFirBlackBoxCodegenBasedTest.kt | 4 +--- ...AbstractLLFirDiagnosticCompilerTestDataSpecTest.kt | 2 +- ...olvedReversedDiagnosticCompilerTestDataSpecTest.kt | 2 +- ...eresolvedReversedDiagnosticCompilerTestDataTest.kt | 7 +------ .../AbstractLLFirReversedBlackBoxCodegenBasedTest.kt | 2 +- .../org/jetbrains/kotlin/fir/tree/generator/Main.kt | 2 +- .../src/org/jetbrains/kotlin/ir/generator/Main.kt | 2 +- .../org/jetbrains/kotlin/test/TestConfiguration.kt | 10 ---------- .../org/jetbrains/kotlin/test/TestStepBuilder.kt | 1 + .../kotlin/test/backend/BlackBoxCodegenSuppressor.kt | 2 +- .../kotlin/test/runners/AbstractFirDiagnosticTest.kt | 1 + .../test/runners/AbstractFirDiagnosticTestSpec.kt | 2 +- .../AbstractCompileKotlinAgainstInlineKotlinTest.kt | 2 +- ...ileKotlinAgainstKotlinWithDifferentBackendsTest.kt | 6 +----- .../codegen/AbstractJvmBlackBoxCodegenTestBase.kt | 2 +- .../src/org/jetbrains/kotlin/utils/functions.kt | 11 ++++++++++- .../src/org/jetbrains/kotlin/generators/tree/utils.kt | 2 -- .../jetbrains/kotlin/js/test/ir/AbstractJsIrTest.kt | 2 +- .../org/jetbrains/kotlin/sir/tree/generator/Main.kt | 2 +- .../AbstractKotlinKapt3IntegrationTestRunner.kt | 2 +- .../serialization/serializationConfiguration.kt | 2 +- 24 files changed, 31 insertions(+), 43 deletions(-) diff --git a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/base/registerBaseTestServices.kt b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/base/registerBaseTestServices.kt index 396617a8692..d028dd41032 100644 --- a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/base/registerBaseTestServices.kt +++ b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/base/registerBaseTestServices.kt @@ -13,11 +13,11 @@ import org.jetbrains.kotlin.analysis.test.framework.services.* import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfigurator import org.jetbrains.kotlin.test.ExecutionListenerBasedDisposableProvider import org.jetbrains.kotlin.test.TestInfrastructureInternals -import org.jetbrains.kotlin.test.bind import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder import org.jetbrains.kotlin.test.services.ApplicationDisposableProvider import org.jetbrains.kotlin.test.services.KotlinStandardLibrariesPathProvider import org.jetbrains.kotlin.test.services.StandardLibrariesPathProviderForKotlinProject +import org.jetbrains.kotlin.utils.bind @OptIn(TestInfrastructureInternals::class) fun TestConfigurationBuilder.registerAnalysisApiBaseTestServices( diff --git a/analysis/low-level-api-fir/low-level-api-fir-native/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/konan/compiler/based/AbstractCompilerBasedNativeTestForFir.kt b/analysis/low-level-api-fir/low-level-api-fir-native/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/konan/compiler/based/AbstractCompilerBasedNativeTestForFir.kt index 3cda05224cc..af3f0942984 100644 --- a/analysis/low-level-api-fir/low-level-api-fir-native/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/konan/compiler/based/AbstractCompilerBasedNativeTestForFir.kt +++ b/analysis/low-level-api-fir/low-level-api-fir-native/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/konan/compiler/based/AbstractCompilerBasedNativeTestForFir.kt @@ -14,9 +14,9 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.diagnostic.compiler.based import org.jetbrains.kotlin.konan.test.diagnostics.baseFirNativeDiagnosticTestConfiguration import org.jetbrains.kotlin.konan.test.diagnostics.baseNativeDiagnosticTestConfiguration import org.jetbrains.kotlin.platform.konan.NativePlatforms -import org.jetbrains.kotlin.test.bind import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder import org.jetbrains.kotlin.test.runners.configurationForClassicAndFirTestsAlongside +import org.jetbrains.kotlin.utils.bind abstract class AbstractLLFirNativeTestBase : AbstractCompilerBasedTestForFir() { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/AbstractDiagnosticCompilerTestDataTest.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/AbstractDiagnosticCompilerTestDataTest.kt index a6e3cbb01b0..3cc42806a07 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/AbstractDiagnosticCompilerTestDataTest.kt +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/AbstractDiagnosticCompilerTestDataTest.kt @@ -9,7 +9,6 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.compiler.based.AbstractCo import org.jetbrains.kotlin.analysis.low.level.api.fir.diagnostic.compiler.based.facades.LLFirAnalyzerFacadeFactoryWithoutPreresolve import org.jetbrains.kotlin.fir.symbols.FirLazyResolveContractViolationException import org.jetbrains.kotlin.test.WrappedException -import org.jetbrains.kotlin.test.bind import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder import org.jetbrains.kotlin.test.directives.model.DirectivesContainer import org.jetbrains.kotlin.test.directives.model.SimpleDirectivesContainer @@ -17,6 +16,7 @@ import org.jetbrains.kotlin.test.model.AfterAnalysisChecker import org.jetbrains.kotlin.test.runners.baseFirDiagnosticTestConfiguration import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.moduleStructure +import org.jetbrains.kotlin.utils.bind abstract class AbstractDiagnosticCompilerTestDataTest : AbstractCompilerBasedTestForFir() { override fun TestConfigurationBuilder.configureTest() { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/AbstractLLFirBlackBoxCodegenBasedTest.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/AbstractLLFirBlackBoxCodegenBasedTest.kt index 920d085f4f9..416598437b0 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/AbstractLLFirBlackBoxCodegenBasedTest.kt +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/AbstractLLFirBlackBoxCodegenBasedTest.kt @@ -6,11 +6,9 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.diagnostic.compiler.based import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirOnlyNonReversedTestSuppressor -import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirOnlyReversedTestSuppressor -import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirTestSuppressor import org.jetbrains.kotlin.analysis.low.level.api.fir.diagnostic.compiler.based.facades.LLFirAnalyzerFacadeFactoryWithoutPreresolve -import org.jetbrains.kotlin.test.bind import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder +import org.jetbrains.kotlin.utils.bind abstract class AbstractLLFirBlackBoxCodegenBasedTest : AbstractLLFirBlackBoxCodegenBasedTestBase() { override fun TestConfigurationBuilder.configureTest() { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/AbstractLLFirDiagnosticCompilerTestDataSpecTest.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/AbstractLLFirDiagnosticCompilerTestDataSpecTest.kt index 8bef53d22e6..18e7b78d31a 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/AbstractLLFirDiagnosticCompilerTestDataSpecTest.kt +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/AbstractLLFirDiagnosticCompilerTestDataSpecTest.kt @@ -7,10 +7,10 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.diagnostic.compiler.base import org.jetbrains.kotlin.analysis.low.level.api.fir.compiler.based.AbstractCompilerBasedTestForFir import org.jetbrains.kotlin.analysis.low.level.api.fir.diagnostic.compiler.based.facades.LLFirAnalyzerFacadeFactoryWithoutPreresolve -import org.jetbrains.kotlin.test.bind import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder import org.jetbrains.kotlin.test.runners.baseFirDiagnosticTestConfiguration import org.jetbrains.kotlin.test.runners.baseFirSpecDiagnosticTestConfiguration +import org.jetbrains.kotlin.utils.bind abstract class AbstractLLFirDiagnosticCompilerTestDataSpecTest : AbstractCompilerBasedTestForFir() { override fun TestConfigurationBuilder.configureTest() { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/AbstractLLFirPreresolvedReversedDiagnosticCompilerTestDataSpecTest.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/AbstractLLFirPreresolvedReversedDiagnosticCompilerTestDataSpecTest.kt index 0a9917e21c5..70cd93d0827 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/AbstractLLFirPreresolvedReversedDiagnosticCompilerTestDataSpecTest.kt +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/AbstractLLFirPreresolvedReversedDiagnosticCompilerTestDataSpecTest.kt @@ -8,9 +8,9 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.diagnostic.compiler.base import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirOnlyReversedTestSuppressor import org.jetbrains.kotlin.analysis.low.level.api.fir.compiler.based.AbstractCompilerBasedTestForFir import org.jetbrains.kotlin.analysis.low.level.api.fir.diagnostic.compiler.based.facades.LLFirAnalyzerFacadeFactoryWithPreresolveInReversedOrder -import org.jetbrains.kotlin.test.bind import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder import org.jetbrains.kotlin.test.runners.baseFirDiagnosticTestConfiguration +import org.jetbrains.kotlin.utils.bind abstract class AbstractLLFirPreresolvedReversedDiagnosticCompilerTestDataSpecTest : AbstractCompilerBasedTestForFir() { override fun TestConfigurationBuilder.configureTest() { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/AbstractLLFirPreresolvedReversedDiagnosticCompilerTestDataTest.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/AbstractLLFirPreresolvedReversedDiagnosticCompilerTestDataTest.kt index 63a71c146b7..f341d6971ae 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/AbstractLLFirPreresolvedReversedDiagnosticCompilerTestDataTest.kt +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/AbstractLLFirPreresolvedReversedDiagnosticCompilerTestDataTest.kt @@ -9,20 +9,15 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirOnlyReversedTestSupp import java.io.File import org.jetbrains.kotlin.analysis.low.level.api.fir.compiler.based.AbstractCompilerBasedTestForFir import org.jetbrains.kotlin.analysis.low.level.api.fir.diagnostic.compiler.based.facades.LLFirAnalyzerFacadeFactoryWithPreresolveInReversedOrder -import org.jetbrains.kotlin.test.bind import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder import org.jetbrains.kotlin.test.runners.baseFirDiagnosticTestConfiguration import org.jetbrains.kotlin.test.services.TestServices -import org.jetbrains.kotlin.test.WrappedException -import org.jetbrains.kotlin.test.directives.model.DirectivesContainer -import org.jetbrains.kotlin.test.directives.model.SimpleDirectivesContainer import org.jetbrains.kotlin.test.frontend.fir.handlers.AbstractFirIdenticalChecker -import org.jetbrains.kotlin.test.model.AfterAnalysisChecker import org.jetbrains.kotlin.test.services.MetaTestConfigurator import org.jetbrains.kotlin.test.services.assertions -import org.jetbrains.kotlin.test.services.moduleStructure import org.jetbrains.kotlin.test.utils.firTestDataFile import org.jetbrains.kotlin.test.utils.llFirTestDataFile +import org.jetbrains.kotlin.utils.bind abstract class AbstractLLFirPreresolvedReversedDiagnosticCompilerTestDataTest : AbstractCompilerBasedTestForFir() { override fun TestConfigurationBuilder.configureTest() { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/AbstractLLFirReversedBlackBoxCodegenBasedTest.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/AbstractLLFirReversedBlackBoxCodegenBasedTest.kt index 91d7f91a078..ac7e5df52ed 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/AbstractLLFirReversedBlackBoxCodegenBasedTest.kt +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/AbstractLLFirReversedBlackBoxCodegenBasedTest.kt @@ -7,8 +7,8 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.diagnostic.compiler.base import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirOnlyReversedTestSuppressor import org.jetbrains.kotlin.analysis.low.level.api.fir.diagnostic.compiler.based.facades.LLFirAnalyzerFacadeFactoryWithPreresolveInReversedOrder -import org.jetbrains.kotlin.test.bind import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder +import org.jetbrains.kotlin.utils.bind abstract class AbstractLLFirReversedBlackBoxCodegenBasedTest : AbstractLLFirBlackBoxCodegenBasedTestBase() { override fun TestConfigurationBuilder.configureTest() { diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/Main.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/Main.kt index 62f55c3c9c7..ff3018715d5 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/Main.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/Main.kt @@ -8,8 +8,8 @@ package org.jetbrains.kotlin.fir.tree.generator import org.jetbrains.kotlin.fir.tree.generator.context.AbstractFirTreeBuilder import org.jetbrains.kotlin.fir.tree.generator.printer.* import org.jetbrains.kotlin.generators.tree.Model -import org.jetbrains.kotlin.generators.tree.bind import org.jetbrains.kotlin.generators.tree.printer.generateTree +import org.jetbrains.kotlin.utils.bind import java.io.File internal const val BASE_PACKAGE = "org.jetbrains.kotlin.fir" diff --git a/compiler/ir/ir.tree/tree-generator/src/org/jetbrains/kotlin/ir/generator/Main.kt b/compiler/ir/ir.tree/tree-generator/src/org/jetbrains/kotlin/ir/generator/Main.kt index e69beada3c2..7d6091e3aec 100644 --- a/compiler/ir/ir.tree/tree-generator/src/org/jetbrains/kotlin/ir/generator/Main.kt +++ b/compiler/ir/ir.tree/tree-generator/src/org/jetbrains/kotlin/ir/generator/Main.kt @@ -5,10 +5,10 @@ package org.jetbrains.kotlin.ir.generator -import org.jetbrains.kotlin.generators.tree.bind import org.jetbrains.kotlin.generators.tree.printer.generateTree import org.jetbrains.kotlin.ir.generator.model.markLeaves import org.jetbrains.kotlin.ir.generator.print.* +import org.jetbrains.kotlin.utils.bind import java.io.File const val BASE_PACKAGE = "org.jetbrains.kotlin.ir" diff --git a/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/TestConfiguration.kt b/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/TestConfiguration.kt index d1625e14d04..e2c5b211249 100644 --- a/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/TestConfiguration.kt +++ b/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/TestConfiguration.kt @@ -20,8 +20,6 @@ typealias Constructor = (TestServices) -> R typealias Constructor2 = (TestServices, T) -> R -typealias Constructor3 = (TestServices, T1, T2) -> R - abstract class TestConfiguration { abstract val rootDisposable: Disposable @@ -48,14 +46,6 @@ abstract class TestConfiguration { // ---------------------------- Utils ---------------------------- -fun Constructor2.bind(value: T): Constructor { - return { this.invoke(it, value) } -} - -fun Constructor3.bind(value1: T1, value2: T2): Constructor { - return { this.invoke(it, value1, value2) } -} - fun (() -> R).coerce(): Constructor { return { this.invoke() } } diff --git a/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/TestStepBuilder.kt b/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/TestStepBuilder.kt index 3f60f0068dd..cf61cb66ab8 100644 --- a/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/TestStepBuilder.kt +++ b/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/TestStepBuilder.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.test import org.jetbrains.kotlin.test.model.* import org.jetbrains.kotlin.test.services.TestServices +import org.jetbrains.kotlin.utils.bind sealed class TestStepBuilder where InputArtifact : ResultingArtifact, diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/BlackBoxCodegenSuppressor.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/BlackBoxCodegenSuppressor.kt index 86ad301bce4..548ea7a45f7 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/BlackBoxCodegenSuppressor.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/BlackBoxCodegenSuppressor.kt @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.test.backend import org.jetbrains.kotlin.test.TargetBackend import org.jetbrains.kotlin.test.WrappedException -import org.jetbrains.kotlin.test.bind import org.jetbrains.kotlin.test.directives.CodegenTestDirectives import org.jetbrains.kotlin.test.directives.extractIgnoredDirectiveForTargetBackend import org.jetbrains.kotlin.test.directives.model.DirectivesContainer @@ -15,6 +14,7 @@ import org.jetbrains.kotlin.test.directives.model.ValueDirective import org.jetbrains.kotlin.test.model.AfterAnalysisChecker import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.* +import org.jetbrains.kotlin.utils.bind class BlackBoxCodegenSuppressor( testServices: TestServices, diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/AbstractFirDiagnosticTest.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/AbstractFirDiagnosticTest.kt index 4709c379816..5b3ed5e426b 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/AbstractFirDiagnosticTest.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/AbstractFirDiagnosticTest.kt @@ -41,6 +41,7 @@ import org.jetbrains.kotlin.test.services.configuration.ScriptingEnvironmentConf import org.jetbrains.kotlin.test.services.fir.FirOldFrontendMetaConfigurator import org.jetbrains.kotlin.test.services.sourceProviders.AdditionalDiagnosticsSourceFilesProvider import org.jetbrains.kotlin.test.services.sourceProviders.CoroutineHelpersSourceFilesProvider +import org.jetbrains.kotlin.utils.bind abstract class AbstractFirDiagnosticTestBase(val parser: FirParser) : AbstractKotlinCompilerTest() { override fun TestConfigurationBuilder.configuration() { diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/AbstractFirDiagnosticTestSpec.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/AbstractFirDiagnosticTestSpec.kt index 356290c53dc..96dc171aef3 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/AbstractFirDiagnosticTestSpec.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/AbstractFirDiagnosticTestSpec.kt @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.test.runners import org.jetbrains.kotlin.test.FirParser -import org.jetbrains.kotlin.test.bind import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder import org.jetbrains.kotlin.test.directives.AdditionalFilesDirectives.SPEC_HELPERS import org.jetbrains.kotlin.test.directives.ConfigurationDirectives.WITH_STDLIB @@ -15,6 +14,7 @@ import org.jetbrains.kotlin.test.frontend.fir.FirFailingTestSuppressor import org.jetbrains.kotlin.test.frontend.fir.handlers.FirIdenticalChecker import org.jetbrains.kotlin.test.services.fir.FirOldFrontendMetaConfigurator import org.jetbrains.kotlin.test.services.sourceProviders.SpecHelpersSourceFilesProvider +import org.jetbrains.kotlin.utils.bind abstract class AbstractFirDiagnosticTestSpecBase(parser: FirParser) : AbstractFirDiagnosticTestBase(parser) { override fun configure(builder: TestConfigurationBuilder) { diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractCompileKotlinAgainstInlineKotlinTest.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractCompileKotlinAgainstInlineKotlinTest.kt index 579b04e7257..28599d3dfbc 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractCompileKotlinAgainstInlineKotlinTest.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractCompileKotlinAgainstInlineKotlinTest.kt @@ -15,7 +15,6 @@ import org.jetbrains.kotlin.test.backend.classic.ClassicJvmBackendFacade import org.jetbrains.kotlin.test.backend.handlers.IrInlineBodiesHandler import org.jetbrains.kotlin.test.backend.ir.IrBackendInput import org.jetbrains.kotlin.test.backend.ir.JvmIrBackendFacade -import org.jetbrains.kotlin.test.bind import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder import org.jetbrains.kotlin.test.builders.configureIrHandlersStep import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.IGNORE_BACKEND_K2_MULTI_MODULE @@ -35,6 +34,7 @@ import org.jetbrains.kotlin.test.frontend.fir.FirOutputArtifact import org.jetbrains.kotlin.test.model.* import org.jetbrains.kotlin.test.runners.AbstractKotlinCompilerWithTargetBackendTest import org.jetbrains.kotlin.test.services.SplittingModuleTransformerForBoxTests +import org.jetbrains.kotlin.utils.bind @OptIn(TestInfrastructureInternals::class) diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractCompileKotlinAgainstKotlinWithDifferentBackendsTest.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractCompileKotlinAgainstKotlinWithDifferentBackendsTest.kt index 8fae8b9995d..e8e3c90dce3 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractCompileKotlinAgainstKotlinWithDifferentBackendsTest.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractCompileKotlinAgainstKotlinWithDifferentBackendsTest.kt @@ -8,16 +8,12 @@ package org.jetbrains.kotlin.test.runners.codegen import org.jetbrains.kotlin.test.TargetBackend import org.jetbrains.kotlin.test.TestInfrastructureInternals import org.jetbrains.kotlin.test.backend.BlackBoxCodegenSuppressor -import org.jetbrains.kotlin.test.backend.classic.ClassicJvmBackendFacade -import org.jetbrains.kotlin.test.backend.ir.JvmIrBackendFacade -import org.jetbrains.kotlin.test.bind import org.jetbrains.kotlin.test.builders.* import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.IGNORE_BACKEND_MULTI_MODULE -import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontend2ClassicBackendConverter -import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontend2IrConverter import org.jetbrains.kotlin.test.model.FrontendKinds import org.jetbrains.kotlin.test.runners.AbstractKotlinCompilerWithTargetBackendTest import org.jetbrains.kotlin.test.services.ModuleTransformerForSwitchingBackend +import org.jetbrains.kotlin.utils.bind @OptIn(TestInfrastructureInternals::class) abstract class AbstractBoxWithDifferentBackendsTest( diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractJvmBlackBoxCodegenTestBase.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractJvmBlackBoxCodegenTestBase.kt index 62e847d3e4f..c59d42b374c 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractJvmBlackBoxCodegenTestBase.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractJvmBlackBoxCodegenTestBase.kt @@ -14,7 +14,6 @@ import org.jetbrains.kotlin.test.backend.BlackBoxInlinerCodegenSuppressor import org.jetbrains.kotlin.test.backend.handlers.BytecodeListingHandler import org.jetbrains.kotlin.test.backend.handlers.BytecodeTextHandler import org.jetbrains.kotlin.test.backend.handlers.JvmIrInterpreterDumpHandler -import org.jetbrains.kotlin.test.bind import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder import org.jetbrains.kotlin.test.builders.configureClassicFrontendHandlersStep import org.jetbrains.kotlin.test.builders.configureFirHandlersStep @@ -29,6 +28,7 @@ import org.jetbrains.kotlin.test.model.* import org.jetbrains.kotlin.test.runners.AbstractKotlinCompilerWithTargetBackendTest import org.jetbrains.kotlin.test.services.configuration.JavaForeignAnnotationType import org.jetbrains.kotlin.test.services.configuration.JvmForeignAnnotationsConfigurator +import org.jetbrains.kotlin.utils.bind abstract class AbstractJvmBlackBoxCodegenTestBase, I : ResultingArtifact.BackendInput>( val targetFrontend: FrontendKind, diff --git a/core/util.runtime/src/org/jetbrains/kotlin/utils/functions.kt b/core/util.runtime/src/org/jetbrains/kotlin/utils/functions.kt index 317dd56a3d5..039ca025064 100644 --- a/core/util.runtime/src/org/jetbrains/kotlin/utils/functions.kt +++ b/core/util.runtime/src/org/jetbrains/kotlin/utils/functions.kt @@ -36,4 +36,13 @@ val DO_NOTHING_3: (Any?, Any?, Any?) -> Unit = { _, _, _ -> } fun doNothing(): (T) -> Unit = DO_NOTHING -fun doNothing() {} \ No newline at end of file +fun doNothing() {} + +fun ((Arg1, Bound) -> R).bind(bound: Bound): ((Arg1) -> R) = + { t1 -> this.invoke(t1, bound) } + +fun ((Arg1, Arg2, Bound) -> R).bind(bound: Bound): ((Arg1, Arg2) -> R) = + { t1, t2 -> this.invoke(t1, t2, bound) } + +fun ((Arg1, Bound1, Bound2) -> R).bind(bound1: Bound1, bound2: Bound2): ((Arg1) -> R) = + { t1 -> this.invoke(t1, bound1, bound2) } diff --git a/generators/tree-generator-common/src/org/jetbrains/kotlin/generators/tree/utils.kt b/generators/tree-generator-common/src/org/jetbrains/kotlin/generators/tree/utils.kt index 39e97a9581d..e866111c913 100644 --- a/generators/tree-generator-common/src/org/jetbrains/kotlin/generators/tree/utils.kt +++ b/generators/tree-generator-common/src/org/jetbrains/kotlin/generators/tree/utils.kt @@ -65,8 +65,6 @@ operator fun Map>.get(k1: K, k2: V): U { return getValue(k1).getValue(k2) } -fun ((T1, T2, T3) -> R).bind(t3: T3): ((T1, T2) -> R) = { t1, t2 -> invoke(t1, t2, t3) } - internal fun > List.reorderFieldsIfNecessary(order: List?): List = if (order == null) { this diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/AbstractJsIrTest.kt b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/AbstractJsIrTest.kt index 90589456b4c..4e59a6a2d78 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/AbstractJsIrTest.kt +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/AbstractJsIrTest.kt @@ -14,7 +14,6 @@ import org.jetbrains.kotlin.parsing.parseBoolean import org.jetbrains.kotlin.test.Constructor import org.jetbrains.kotlin.test.TargetBackend import org.jetbrains.kotlin.test.backend.ir.IrBackendInput -import org.jetbrains.kotlin.test.bind import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder import org.jetbrains.kotlin.test.builders.configureJsArtifactsHandlersStep import org.jetbrains.kotlin.test.builders.jsArtifactsHandlersStep @@ -24,6 +23,7 @@ import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendFacade import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendOutputArtifact import org.jetbrains.kotlin.test.model.* import org.jetbrains.kotlin.test.services.configuration.JsEnvironmentConfigurator +import org.jetbrains.kotlin.utils.bind import java.lang.Boolean.getBoolean abstract class AbstractJsIrTest( diff --git a/native/swift/sir/tree-generator/src/org/jetbrains/kotlin/sir/tree/generator/Main.kt b/native/swift/sir/tree-generator/src/org/jetbrains/kotlin/sir/tree/generator/Main.kt index 929a5ba9051..bcd531ce486 100644 --- a/native/swift/sir/tree-generator/src/org/jetbrains/kotlin/sir/tree/generator/Main.kt +++ b/native/swift/sir/tree-generator/src/org/jetbrains/kotlin/sir/tree/generator/Main.kt @@ -5,10 +5,10 @@ package org.jetbrains.kotlin.sir.tree.generator -import org.jetbrains.kotlin.generators.tree.bind import org.jetbrains.kotlin.generators.tree.printer.generateTree import org.jetbrains.kotlin.sir.tree.generator.model.Element import org.jetbrains.kotlin.sir.tree.generator.printer.* +import org.jetbrains.kotlin.utils.bind import java.io.File internal const val BASE_PACKAGE = "org.jetbrains.kotlin.sir" diff --git a/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/integration/AbstractKotlinKapt3IntegrationTestRunner.kt b/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/integration/AbstractKotlinKapt3IntegrationTestRunner.kt index 1f6563e2e17..f0f22cfe194 100644 --- a/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/integration/AbstractKotlinKapt3IntegrationTestRunner.kt +++ b/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/integration/AbstractKotlinKapt3IntegrationTestRunner.kt @@ -14,13 +14,13 @@ import org.jetbrains.kotlin.kapt3.test.KaptEnvironmentConfigurator import org.jetbrains.kotlin.kapt3.test.KaptTestDirectives import org.jetbrains.kotlin.platform.jvm.JvmPlatforms import org.jetbrains.kotlin.test.TargetBackend -import org.jetbrains.kotlin.test.bind import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder import org.jetbrains.kotlin.test.model.DependencyKind import org.jetbrains.kotlin.test.model.FrontendKinds import org.jetbrains.kotlin.test.runners.AbstractKotlinCompilerWithTargetBackendTest import org.jetbrains.kotlin.test.services.configuration.CommonEnvironmentConfigurator import org.jetbrains.kotlin.test.services.configuration.JvmEnvironmentConfigurator +import org.jetbrains.kotlin.utils.bind import javax.annotation.processing.ProcessingEnvironment import javax.annotation.processing.RoundEnvironment import javax.lang.model.element.TypeElement diff --git a/plugins/kotlinx-serialization/tests/org/jetbrains/kotlinx/serialization/serializationConfiguration.kt b/plugins/kotlinx-serialization/tests/org/jetbrains/kotlinx/serialization/serializationConfiguration.kt index fb0460268f2..87262db6d71 100644 --- a/plugins/kotlinx-serialization/tests/org/jetbrains/kotlinx/serialization/serializationConfiguration.kt +++ b/plugins/kotlinx-serialization/tests/org/jetbrains/kotlinx/serialization/serializationConfiguration.kt @@ -11,7 +11,6 @@ import org.jetbrains.kotlin.config.CompilerConfiguration import org.jetbrains.kotlin.config.JvmTarget import org.jetbrains.kotlin.test.TargetBackend import org.jetbrains.kotlin.test.TestJdkKind -import org.jetbrains.kotlin.test.bind import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.runners.codegen.configureModernJavaTest @@ -19,6 +18,7 @@ import org.jetbrains.kotlin.test.services.EnvironmentConfigurator import org.jetbrains.kotlin.test.services.RuntimeClasspathJsProvider import org.jetbrains.kotlin.test.services.RuntimeClasspathProvider import org.jetbrains.kotlin.test.services.TestServices +import org.jetbrains.kotlin.utils.bind import org.jetbrains.kotlinx.serialization.compiler.extensions.SerializationComponentRegistrar import org.jetbrains.kotlinx.serialization.compiler.extensions.SerializationIntrinsicsState import java.io.File