From dd332bc08cc631ebc7d924ddfe811ead9a323220 Mon Sep 17 00:00:00 2001 From: Stepan Koltsov Date: Fri, 4 May 2012 23:57:13 +0400 Subject: [PATCH] -mode idea #KT-1893 Fixed --- .../jet/cli/jvm/compiler/CompileEnvironmentUtil.java | 3 +++ .../jetbrains/jet/cli/jvm/compiler/JetCoreEnvironment.java | 4 +++- .../jet/lang/resolve/java/CompilerDependencies.java | 7 ++++++- .../jet/lang/resolve/java/CompilerSpecialMode.java | 7 ++++++- .../org/jetbrains/jet/CompileCompilerDependenciesTest.java | 2 +- .../src/org/jetbrains/jet/plugin/compiler/JetCompiler.java | 2 +- 6 files changed, 20 insertions(+), 5 deletions(-) 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 448ffd76bbb..3d62e589963 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 @@ -145,6 +145,9 @@ public class CompileEnvironmentUtil { else if (compilerDependencies.getCompilerSpecialMode() == CompilerSpecialMode.BUILTINS) { // nop } + else if (compilerDependencies.getCompilerSpecialMode() == CompilerSpecialMode.IDEA) { + // nop + } else { throw new IllegalStateException("unknown mode: " + compilerDependencies.getCompilerSpecialMode()); } diff --git a/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/JetCoreEnvironment.java b/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/JetCoreEnvironment.java index fafde19fca9..e9db023eee1 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/JetCoreEnvironment.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/JetCoreEnvironment.java @@ -80,7 +80,9 @@ public class JetCoreEnvironment extends JavaCoreEnvironment { CompilerSpecialMode compilerSpecialMode = compilerDependencies.getCompilerSpecialMode(); - addToClasspath(compilerDependencies.getJdkJar()); + if (compilerSpecialMode.includeJdk()) { + addToClasspath(compilerDependencies.getJdkJar()); + } if (compilerSpecialMode.includeJdkHeaders()) { for (VirtualFile root : compilerDependencies.getJdkHeaderRoots()) { diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/CompilerDependencies.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/CompilerDependencies.java index 05075e34c10..226771fe4b5 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/CompilerDependencies.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/CompilerDependencies.java @@ -45,6 +45,11 @@ public class CompilerDependencies { this.jdkHeadersJar = jdkHeadersJar; this.runtimeJar = runtimeJar; + if (compilerSpecialMode.includeJdk()) { + if (jdkJar == null) { + throw new IllegalArgumentException("jdk must be included for mode " + compilerSpecialMode); + } + } if (compilerSpecialMode.includeJdkHeaders()) { if (jdkHeadersJar == null) { throw new IllegalArgumentException("jdkHeaders must be included for mode " + compilerSpecialMode); @@ -101,7 +106,7 @@ public class CompilerDependencies { public static CompilerDependencies compilerDependenciesForProduction(@NotNull CompilerSpecialMode compilerSpecialMode) { return new CompilerDependencies( compilerSpecialMode, - findRtJar(), + compilerSpecialMode.includeJdk() ? findRtJar() : null, compilerSpecialMode.includeJdkHeaders() ? PathUtil.getAltHeadersPath() : null, compilerSpecialMode.includeKotlinRuntime() ? PathUtil.getDefaultRuntimePath() : null); } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/CompilerSpecialMode.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/CompilerSpecialMode.java index 11bd89eed63..a75759cc274 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/CompilerSpecialMode.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/CompilerSpecialMode.java @@ -24,17 +24,22 @@ public enum CompilerSpecialMode { BUILTINS, JDK_HEADERS, STDLIB, + IDEA, JS, ; public boolean includeJdkHeaders() { - return this == REGULAR || this == STDLIB; + return this == REGULAR || this == STDLIB || this == IDEA; } public boolean includeKotlinRuntime() { return this == REGULAR; } + public boolean includeJdk() { + return this != IDEA; + } + public boolean isStubs() { return this == BUILTINS || this == JDK_HEADERS; } diff --git a/compiler/tests/org/jetbrains/jet/CompileCompilerDependenciesTest.java b/compiler/tests/org/jetbrains/jet/CompileCompilerDependenciesTest.java index d024dfd8572..c3e084a4c68 100644 --- a/compiler/tests/org/jetbrains/jet/CompileCompilerDependenciesTest.java +++ b/compiler/tests/org/jetbrains/jet/CompileCompilerDependenciesTest.java @@ -52,7 +52,7 @@ public class CompileCompilerDependenciesTest { public static CompilerDependencies compilerDependenciesForTests(@NotNull CompilerSpecialMode compilerSpecialMode, boolean mockJdk) { return new CompilerDependencies( compilerSpecialMode, - mockJdk ? JetTestUtils.findMockJdkRtJar() : CompilerDependencies.findRtJar(), + compilerSpecialMode.includeJdk() ? (mockJdk ? JetTestUtils.findMockJdkRtJar() : CompilerDependencies.findRtJar()) : null, compilerSpecialMode.includeJdkHeaders() ? ForTestCompileJdkHeaders.jdkHeadersForTests() : null, compilerSpecialMode.includeKotlinRuntime() ? ForTestCompileRuntime.runtimeJarForTests() : null); } diff --git a/idea/src/org/jetbrains/jet/plugin/compiler/JetCompiler.java b/idea/src/org/jetbrains/jet/plugin/compiler/JetCompiler.java index 72cb9695e43..59d6073c79e 100644 --- a/idea/src/org/jetbrains/jet/plugin/compiler/JetCompiler.java +++ b/idea/src/org/jetbrains/jet/plugin/compiler/JetCompiler.java @@ -259,7 +259,7 @@ public class JetCompiler implements TranslatingCompiler { private static String[] commandLineArguments(VirtualFile outputDir, File scriptFile) { return new String[]{"-module", scriptFile.getAbsolutePath(), "-output", path(outputDir), "-tags", "-verbose", "-version", "-mode", - "stdlib"}; + "idea"}; } private static void runOutOfProcess(final CompileContext compileContext,