diff --git a/build.xml b/build.xml index e7a739ff78a..72a2dc48394 100644 --- a/build.xml +++ b/build.xml @@ -52,7 +52,7 @@ - + @@ -63,6 +63,10 @@ + + + + diff --git a/compiler/cli/src/org/jetbrains/jet/compiler/CompileEnvironment.java b/compiler/cli/src/org/jetbrains/jet/compiler/CompileEnvironment.java index 43fd257009f..7d4c7ea5f85 100644 --- a/compiler/cli/src/org/jetbrains/jet/compiler/CompileEnvironment.java +++ b/compiler/cli/src/org/jetbrains/jet/compiler/CompileEnvironment.java @@ -125,6 +125,8 @@ public class CompileEnvironment { ensureRuntime(environment); } else if (mode == CompilerSpecialMode.JDK_HEADERS) { ensureJdkRuntime(environment); + } else if (mode == CompilerSpecialMode.STDLIB) { + ensureJdkRuntime(environment); } else if (mode == CompilerSpecialMode.BUILTINS) { // nop } else { 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 e2620e0d5c2..91535c783ed 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 @@ -23,4 +23,10 @@ public enum CompilerSpecialMode { REGULAR, BUILTINS, JDK_HEADERS, + STDLIB, + ; + + public boolean includeJdkHeaders() { + return this == REGULAR || this == STDLIB; + } } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/PsiClassFinderForJvm.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/PsiClassFinderForJvm.java index a19ac60effb..08569c82070 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/PsiClassFinderForJvm.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/PsiClassFinderForJvm.java @@ -62,7 +62,7 @@ public class PsiClassFinderForJvm implements PsiClassFinder { @PostConstruct public void initialize() { this.altClassFinder = new AltClassFinder(project, - compilerSpecialMode == CompilerSpecialMode.REGULAR ? PathUtil.getAltHeadersRoots() : Collections.emptyList()); + compilerSpecialMode.includeJdkHeaders() ? PathUtil.getAltHeadersRoots() : Collections.emptyList()); this.javaSearchScope = new DelegatingGlobalSearchScope(GlobalSearchScope.allScope(project)) { @Override public boolean contains(VirtualFile file) { diff --git a/compiler/tests/org/jetbrains/jet/codegen/ForTestCompileStdlib.java b/compiler/tests/org/jetbrains/jet/codegen/ForTestCompileStdlib.java index 50298dd429d..32a6580a7ed 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/ForTestCompileStdlib.java +++ b/compiler/tests/org/jetbrains/jet/codegen/ForTestCompileStdlib.java @@ -98,7 +98,11 @@ public class ForTestCompileStdlib { } private static void compileKotlinPartOfStdlib(File destdir) throws IOException { - KotlinCompiler.ExitCode exitCode = new KotlinCompiler().exec(System.err, "-output", destdir.getPath(), "-src", "./libraries/stdlib/src", "-stdlib", destdir.getAbsolutePath()); + KotlinCompiler.ExitCode exitCode = new KotlinCompiler().exec(System.err, + "-output", destdir.getPath(), + "-src", "./libraries/stdlib/src", + "-mode", "stdlib", + "-classpath", "out/production/runtime"); if (exitCode != KotlinCompiler.ExitCode.OK) { throw new IllegalStateException("stdlib for test compilation failed: " + exitCode); }