diagnostics in CompileEnvironment

This commit is contained in:
Stepan Koltsov
2012-02-09 16:34:26 +04:00
parent b7f5490b4c
commit df3abbfbb6
2 changed files with 9 additions and 1 deletions
@@ -9,6 +9,7 @@ import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.util.Processor;
import jet.modules.AllModules;
import jet.modules.Module;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.codegen.ClassFileFactory;
import org.jetbrains.jet.codegen.GeneratedClassLoader;
@@ -67,6 +68,7 @@ public class CompileEnvironment {
Disposer.dispose(myRootDisposable);
}
@Nullable
public static File getUnpackedRuntimePath() {
URL url = CompileEnvironment.class.getClassLoader().getResource("jet/JetObject.class");
if (url != null && url.getProtocol().equals("file")) {
@@ -75,6 +77,7 @@ public class CompileEnvironment {
return null;
}
@Nullable
public static File getRuntimeJarPath() {
URL url = CompileEnvironment.class.getClassLoader().getResource("jet/JetObject.class");
if (url != null && url.getProtocol().equals("jar")) {
@@ -88,7 +91,7 @@ public class CompileEnvironment {
ensureRuntime(myEnvironment);
}
public static void ensureRuntime(JetCoreEnvironment env) {
public static void ensureRuntime(@NotNull JetCoreEnvironment env) {
Project project = env.getProject();
if (JavaPsiFacade.getInstance(project).findClass("java.lang.Object", GlobalSearchScope.allScope(project)) == null) {
// TODO: prepend
@@ -102,6 +105,9 @@ public class CompileEnvironment {
kotlin = getUnpackedRuntimePath();
if (kotlin == null) kotlin = getRuntimeJarPath();
}
if (kotlin == null) {
throw new IllegalStateException("kotlin runtime not found");
}
env.addToClasspath(kotlin);
}
}
@@ -7,6 +7,7 @@ import com.intellij.openapi.application.PathManager;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.VirtualFileManager;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.io.File;
import java.util.ArrayList;
@@ -46,6 +47,7 @@ public class PathUtil {
return null;
}
@Nullable
public static File getDefaultRuntimePath() {
File compilerPath = getDefaultCompilerPath();
if (compilerPath == null) return null;