From 004c289a0b3c015076fa4b19e33a6d1a0609c6e2 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Sat, 1 Feb 2014 18:53:27 +0400 Subject: [PATCH] Use kotlin.modules.* instead of jet.modules.* --- .../jet/buildtools/core/BytecodeCompiler.java | 2 +- .../cli/common/modules/ModuleDescription.java | 2 +- .../jet/cli/jvm/compiler/ChunkAsOneModule.kt | 2 +- .../jvm/compiler/CompileEnvironmentUtil.java | 24 ++++++------ .../compiler/KotlinToJVMBytecodeCompiler.java | 4 +- .../jet/cli/jvm/compiler/ModuleChunk.java | 2 +- .../src/jet/modules/AllModules.java | 32 ---------------- core/runtime.jvm/src/jet/modules/Module.java | 38 ------------------- .../src/kotlin/modules/ModuleBuilder.kt | 5 +-- 9 files changed, 21 insertions(+), 90 deletions(-) delete mode 100644 core/runtime.jvm/src/jet/modules/AllModules.java delete mode 100644 core/runtime.jvm/src/jet/modules/Module.java diff --git a/build-tools/core/src/org/jetbrains/jet/buildtools/core/BytecodeCompiler.java b/build-tools/core/src/org/jetbrains/jet/buildtools/core/BytecodeCompiler.java index 833ea10cdb2..e7694111ac2 100644 --- a/build-tools/core/src/org/jetbrains/jet/buildtools/core/BytecodeCompiler.java +++ b/build-tools/core/src/org/jetbrains/jet/buildtools/core/BytecodeCompiler.java @@ -20,7 +20,7 @@ import com.intellij.openapi.util.Disposer; import com.intellij.openapi.util.io.FileUtilRt; import com.intellij.openapi.util.text.StringUtil; import com.intellij.util.Function; -import jet.modules.Module; +import kotlin.modules.Module; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.cli.common.CLIConfigurationKeys; diff --git a/compiler/cli/cli-common/src/org/jetbrains/jet/cli/common/modules/ModuleDescription.java b/compiler/cli/cli-common/src/org/jetbrains/jet/cli/common/modules/ModuleDescription.java index f92dce5b5ab..c9bca175c3a 100644 --- a/compiler/cli/cli-common/src/org/jetbrains/jet/cli/common/modules/ModuleDescription.java +++ b/compiler/cli/cli-common/src/org/jetbrains/jet/cli/common/modules/ModuleDescription.java @@ -22,7 +22,7 @@ import org.jetbrains.annotations.NotNull; import java.util.List; /** - * This interface duplicates {@link jet.modules.Module}, because cli-common should not depend on kotlin-runtime.jar + * This interface duplicates {@link kotlin.modules.Module}, because cli-common should not depend on kotlin-runtime.jar */ public interface ModuleDescription { diff --git a/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/ChunkAsOneModule.kt b/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/ChunkAsOneModule.kt index 5640d20f3bc..0198df04f17 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/ChunkAsOneModule.kt +++ b/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/ChunkAsOneModule.kt @@ -1,6 +1,6 @@ package org.jetbrains.jet.cli.jvm.compiler -import jet.modules.Module +import kotlin.modules.Module class ChunkAsOneModule(private val chunk: ModuleChunk) : Module { override fun getModuleName(): String = "chunk" + chunk.getModules().map { it.getModuleName() }.toString() diff --git a/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/CompileEnvironmentUtil.java b/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/CompileEnvironmentUtil.java index 07e8f121198..432a1c2cfe1 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/CompileEnvironmentUtil.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/CompileEnvironmentUtil.java @@ -22,8 +22,8 @@ import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.io.FileUtilRt; import com.intellij.util.Function; import com.intellij.util.containers.ContainerUtil; -import jet.modules.AllModules; -import jet.modules.Module; +import kotlin.modules.AllModules; +import kotlin.modules.Module; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.OutputFile; @@ -42,9 +42,9 @@ import org.jetbrains.jet.config.CommonConfigurationKeys; import org.jetbrains.jet.config.CompilerConfiguration; import org.jetbrains.jet.lang.resolve.java.PackageClassUtils; import org.jetbrains.jet.lang.resolve.name.FqName; -import org.jetbrains.jet.utils.UtilsPackage; import org.jetbrains.jet.utils.KotlinPaths; import org.jetbrains.jet.utils.PathUtil; +import org.jetbrains.jet.utils.UtilsPackage; import java.io.*; import java.lang.reflect.Method; @@ -117,7 +117,7 @@ public class CompileEnvironmentUtil { loadModuleScriptText(moduleScriptFile)); } - modules = runDefineModules(paths, moduleScriptFile, generationState.getFactory()); + modules = runDefineModules(paths, generationState.getFactory()); } finally { Disposer.dispose(disposable); @@ -133,7 +133,7 @@ public class CompileEnvironmentUtil { return modules; } - private static List runDefineModules(KotlinPaths paths, String moduleFile, ClassFileFactory factory) { + private static List runDefineModules(KotlinPaths paths, ClassFileFactory factory) { File stdlibJar = paths.getRuntimePath(); GeneratedClassLoader loader; if (stdlibJar.exists()) { @@ -149,17 +149,14 @@ public class CompileEnvironmentUtil { loader = new GeneratedClassLoader(factory, KotlinToJVMBytecodeCompiler.class.getClassLoader()); } try { - Class packageClass = loader.loadClass(PackageClassUtils.getPackageClassName(FqName.ROOT)); + Class packageClass = loader.loadClass(PackageClassUtils.getPackageClassName(FqName.ROOT)); Method method = packageClass.getDeclaredMethod("project"); - if (method == null) { - throw new CompileEnvironmentException("Module script " + moduleFile + " must define project() function"); - } method.setAccessible(true); method.invoke(null); - ArrayList answer = new ArrayList(AllModules.modules.get()); - AllModules.modules.get().clear(); + ArrayList answer = new ArrayList(AllModules.instance$.get()); + AllModules.instance$.get().clear(); return answer; } catch (Exception e) { @@ -276,26 +273,31 @@ public class CompileEnvironmentUtil { this.description = description; } + @NotNull @Override public String getModuleName() { return description.getModuleName(); } + @NotNull @Override public String getOutputDirectory() { return description.getOutputDir(); } + @NotNull @Override public List getSourceFiles() { return description.getSourceFiles(); } + @NotNull @Override public List getClasspathRoots() { return description.getClasspathRoots(); } + @NotNull @Override public List getAnnotationsRoots() { return description.getAnnotationsRoots(); diff --git a/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.java b/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.java index 954b277b401..efc5ce43e31 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.java @@ -22,8 +22,8 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Disposer; import com.intellij.psi.PsiFile; import jet.Function0; -import jet.modules.AllModules; -import jet.modules.Module; +import kotlin.modules.AllModules; +import kotlin.modules.Module; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.analyzer.AnalyzeExhaust; diff --git a/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/ModuleChunk.java b/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/ModuleChunk.java index b7aee97b5b3..361bdb0ef59 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/ModuleChunk.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/ModuleChunk.java @@ -17,7 +17,7 @@ package org.jetbrains.jet.cli.jvm.compiler; import com.google.common.collect.Maps; -import jet.modules.Module; +import kotlin.modules.Module; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/core/runtime.jvm/src/jet/modules/AllModules.java b/core/runtime.jvm/src/jet/modules/AllModules.java deleted file mode 100644 index 0cd98bc15a8..00000000000 --- a/core/runtime.jvm/src/jet/modules/AllModules.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright 2010-2013 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package jet.modules; - -import java.util.ArrayList; - -public class AllModules { - - public static final ThreadLocal> modules = new ThreadLocal>() { - @Override - protected ArrayList initialValue() { - return new ArrayList(); - } - }; - - private AllModules() { - } -} diff --git a/core/runtime.jvm/src/jet/modules/Module.java b/core/runtime.jvm/src/jet/modules/Module.java deleted file mode 100644 index 257888f3a40..00000000000 --- a/core/runtime.jvm/src/jet/modules/Module.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright 2010-2013 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package jet.modules; - -import jet.runtime.typeinfo.KotlinSignature; - -import java.util.List; - -public interface Module { - @KotlinSignature("fun getModuleName(): String") - String getModuleName(); - - @KotlinSignature("fun getOutputDirectory(): String") - String getOutputDirectory(); - - @KotlinSignature("fun getSourceFiles(): List") - List getSourceFiles(); - - @KotlinSignature("fun getClasspathRoots(): List") - List getClasspathRoots(); - - @KotlinSignature("fun getAnnotationsRoots(): List") - List getAnnotationsRoots(); -} diff --git a/libraries/stdlib/src/kotlin/modules/ModuleBuilder.kt b/libraries/stdlib/src/kotlin/modules/ModuleBuilder.kt index 35522d7b98a..df57c732ab8 100644 --- a/libraries/stdlib/src/kotlin/modules/ModuleBuilder.kt +++ b/libraries/stdlib/src/kotlin/modules/ModuleBuilder.kt @@ -5,8 +5,7 @@ import java.util.ArrayList public fun module(name: String, outputDir: String, callback: ModuleBuilder.() -> Unit) { val builder = ModuleBuilder(name, outputDir) builder.callback() - jet.modules.AllModules.modules.get()?.add(builder) - kotlin.modules.AllModules.get()?.add(builder) + AllModules.get()?.add(builder) } class SourcesBuilder(val parent: ModuleBuilder) { @@ -27,7 +26,7 @@ class AnnotationsPathBuilder(val parent: ModuleBuilder) { } } -open class ModuleBuilder(val name: String, val outputDir: String): jet.modules.Module, kotlin.modules.Module { +open class ModuleBuilder(val name: String, val outputDir: String): Module { // http://youtrack.jetbrains.net/issue/KT-904 private val sourceFiles0 = ArrayList() private val classpathRoots0 = ArrayList()