diff --git a/compiler/tests-common/org/jetbrains/kotlin/codegen/GenerationUtils.kt b/compiler/tests-common/org/jetbrains/kotlin/codegen/GenerationUtils.kt index 8a3cc3228d7..d4784823e3f 100644 --- a/compiler/tests-common/org/jetbrains/kotlin/codegen/GenerationUtils.kt +++ b/compiler/tests-common/org/jetbrains/kotlin/codegen/GenerationUtils.kt @@ -14,59 +14,42 @@ * limitations under the License. */ -package org.jetbrains.kotlin.codegen; +package org.jetbrains.kotlin.codegen -import kotlin.collections.CollectionsKt; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.jetbrains.kotlin.analyzer.AnalysisResult; -import org.jetbrains.kotlin.cli.common.output.outputUtils.OutputUtilsKt; -import org.jetbrains.kotlin.cli.jvm.compiler.JvmPackagePartProvider; -import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment; -import org.jetbrains.kotlin.codegen.state.GenerationState; -import org.jetbrains.kotlin.config.CompilerConfiguration; -import org.jetbrains.kotlin.descriptors.PackagePartProvider; -import org.jetbrains.kotlin.psi.KtFile; -import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil; -import org.jetbrains.kotlin.test.KotlinTestUtils; +import org.jetbrains.kotlin.cli.common.output.outputUtils.writeAllTo +import org.jetbrains.kotlin.cli.jvm.compiler.JvmPackagePartProvider +import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment +import org.jetbrains.kotlin.codegen.state.GenerationState +import org.jetbrains.kotlin.descriptors.PackagePartProvider +import org.jetbrains.kotlin.psi.KtFile +import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil +import org.jetbrains.kotlin.test.KotlinTestUtils +import java.io.File -import java.io.File; -import java.util.Collections; -import java.util.List; +object GenerationUtils { + @JvmStatic + fun compileFileTo(ktFile: KtFile, environment: KotlinCoreEnvironment, output: File): ClassFileFactory = + compileFile(ktFile, environment).apply { + writeAllTo(output) + } -public class GenerationUtils { - private GenerationUtils() { - } + @JvmStatic + fun compileFile(ktFile: KtFile, environment: KotlinCoreEnvironment): ClassFileFactory = + compileFiles(listOf(ktFile), environment).factory - @NotNull - public static ClassFileFactory compileFileTo(@NotNull KtFile ktFile, @NotNull KotlinCoreEnvironment environment, @NotNull File output) { - ClassFileFactory factory = compileFile(ktFile, environment); - OutputUtilsKt.writeAllTo(factory, output); - return factory; - } + @JvmStatic + fun compileFiles(files: List, environment: KotlinCoreEnvironment?): GenerationState { + val packagePartProvider = if (environment == null) PackagePartProvider.Empty else JvmPackagePartProvider(environment) + val configuration = environment?.configuration ?: KotlinTestUtils.newConfiguration() - @NotNull - public static ClassFileFactory compileFile(@NotNull KtFile ktFile, @NotNull KotlinCoreEnvironment environment) { - return compileFiles(Collections.singletonList(ktFile), environment).getFactory(); - } + val analysisResult = JvmResolveUtil.analyzeAndCheckForErrors(files.first().project, files, configuration, packagePartProvider) + analysisResult.throwIfError() - @NotNull - public static GenerationState compileFiles(@NotNull List files, @Nullable KotlinCoreEnvironment environment) { - PackagePartProvider packagePartProvider = - environment == null ? PackagePartProvider.Empty.INSTANCE : new JvmPackagePartProvider(environment); - CompilerConfiguration configuration = - environment == null ? KotlinTestUtils.newConfiguration() : environment.getConfiguration(); - - AnalysisResult analysisResult = - JvmResolveUtil.analyzeAndCheckForErrors(CollectionsKt.first(files).getProject(), files, configuration, packagePartProvider); - analysisResult.throwIfError(); - - GenerationState state = new GenerationState( - CollectionsKt.first(files).getProject(), ClassBuilderFactories.TEST, - analysisResult.getModuleDescriptor(), analysisResult.getBindingContext(), + val state = GenerationState( + files.first().project, ClassBuilderFactories.TEST, analysisResult.moduleDescriptor, analysisResult.bindingContext, files, configuration - ); - KotlinCodegenFacade.compileCorrectFiles(state, CompilationErrorHandler.THROW_EXCEPTION); - return state; + ) + KotlinCodegenFacade.compileCorrectFiles(state, CompilationErrorHandler.THROW_EXCEPTION) + return state } } diff --git a/compiler/tests-common/org/jetbrains/kotlin/resolve/lazy/JvmResolveUtil.kt b/compiler/tests-common/org/jetbrains/kotlin/resolve/lazy/JvmResolveUtil.kt index 53a32c69654..0f76a59b387 100644 --- a/compiler/tests-common/org/jetbrains/kotlin/resolve/lazy/JvmResolveUtil.kt +++ b/compiler/tests-common/org/jetbrains/kotlin/resolve/lazy/JvmResolveUtil.kt @@ -14,81 +14,64 @@ * limitations under the License. */ -package org.jetbrains.kotlin.resolve.lazy; +package org.jetbrains.kotlin.resolve.lazy -import com.intellij.openapi.project.Project; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.kotlin.analyzer.AnalysisResult; -import org.jetbrains.kotlin.cli.jvm.compiler.CliLightClassGenerationSupport; -import org.jetbrains.kotlin.cli.jvm.compiler.JvmPackagePartProvider; -import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment; -import org.jetbrains.kotlin.config.CompilerConfiguration; -import org.jetbrains.kotlin.descriptors.PackagePartProvider; -import org.jetbrains.kotlin.psi.KtFile; -import org.jetbrains.kotlin.resolve.AnalyzingUtils; -import org.jetbrains.kotlin.resolve.jvm.TopDownAnalyzerFacadeForJVM; +import com.intellij.openapi.project.Project +import org.jetbrains.kotlin.analyzer.AnalysisResult +import org.jetbrains.kotlin.cli.jvm.compiler.CliLightClassGenerationSupport +import org.jetbrains.kotlin.cli.jvm.compiler.JvmPackagePartProvider +import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment +import org.jetbrains.kotlin.config.CompilerConfiguration +import org.jetbrains.kotlin.descriptors.PackagePartProvider +import org.jetbrains.kotlin.psi.KtFile +import org.jetbrains.kotlin.resolve.AnalyzingUtils +import org.jetbrains.kotlin.resolve.jvm.TopDownAnalyzerFacadeForJVM -import java.util.Collection; -import java.util.Collections; +object JvmResolveUtil { + @JvmStatic + fun analyzeAndCheckForErrors(file: KtFile, environment: KotlinCoreEnvironment): AnalysisResult = + analyzeAndCheckForErrors(setOf(file), environment) -public class JvmResolveUtil { - @NotNull - public static AnalysisResult analyzeAndCheckForErrors(@NotNull KtFile file, @NotNull KotlinCoreEnvironment environment) { - return analyzeAndCheckForErrors(Collections.singleton(file), environment); - } + @JvmStatic + fun analyzeAndCheckForErrors(files: Collection, environment: KotlinCoreEnvironment): AnalysisResult = + analyzeAndCheckForErrors(environment.project, files, environment.configuration, JvmPackagePartProvider(environment)) - @NotNull - public static AnalysisResult analyzeAndCheckForErrors( - @NotNull Collection files, - @NotNull KotlinCoreEnvironment environment - ) { - return analyzeAndCheckForErrors( - environment.getProject(), files, environment.getConfiguration(), new JvmPackagePartProvider(environment) - ); - } - - @NotNull - public static AnalysisResult analyzeAndCheckForErrors( - @NotNull Project project, - @NotNull Collection files, - @NotNull CompilerConfiguration configuration, - @NotNull PackagePartProvider packagePartProvider - ) { - for (KtFile file : files) { - AnalyzingUtils.checkForSyntacticErrors(file); + @JvmStatic + fun analyzeAndCheckForErrors( + project: Project, + files: Collection, + configuration: CompilerConfiguration, + packagePartProvider: PackagePartProvider + ): AnalysisResult { + for (file in files) { + AnalyzingUtils.checkForSyntacticErrors(file) } - AnalysisResult analysisResult = analyze(project, files, configuration, packagePartProvider); - - AnalyzingUtils.throwExceptionOnErrors(analysisResult.getBindingContext()); - - return analysisResult; + return analyze(project, files, configuration, packagePartProvider).apply { + AnalyzingUtils.throwExceptionOnErrors(bindingContext) + } } - @NotNull - public static AnalysisResult analyze(@NotNull KotlinCoreEnvironment environment) { - return analyze(Collections.emptySet(), environment); - } + @JvmStatic + fun analyze(environment: KotlinCoreEnvironment): AnalysisResult = + analyze(emptySet(), environment) - @NotNull - public static AnalysisResult analyze(@NotNull KtFile file, @NotNull KotlinCoreEnvironment environment) { - return analyze(Collections.singleton(file), environment); - } + @JvmStatic + fun analyze(file: KtFile, environment: KotlinCoreEnvironment): AnalysisResult = + analyze(setOf(file), environment) - @NotNull - public static AnalysisResult analyze(@NotNull Collection files, @NotNull KotlinCoreEnvironment environment) { - return analyze(environment.getProject(), files, environment.getConfiguration(), new JvmPackagePartProvider(environment)); - } + @JvmStatic + fun analyze(files: Collection, environment: KotlinCoreEnvironment): AnalysisResult = + analyze(environment.project, files, environment.configuration, JvmPackagePartProvider(environment)) - @NotNull - private static AnalysisResult analyze( - @NotNull Project project, - @NotNull Collection files, - @NotNull CompilerConfiguration configuration, - @NotNull PackagePartProvider packagePartProvider - ) { + private fun analyze( + project: Project, + files: Collection, + configuration: CompilerConfiguration, + packagePartProvider: PackagePartProvider + ): AnalysisResult { return TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration( - project, files, new CliLightClassGenerationSupport.CliBindingTrace(), configuration, packagePartProvider - ); + project, files, CliLightClassGenerationSupport.CliBindingTrace(), configuration, packagePartProvider + ) } }