Deal with absence of js library. fix K2JSMessagingTest

This commit is contained in:
Pavel V. Talanov
2012-07-03 17:58:58 +04:00
parent 508b241553
commit dd43f6b699
4 changed files with 18 additions and 10 deletions
@@ -42,6 +42,7 @@ import org.jetbrains.k2js.facade.K2JSTranslator;
import org.jetbrains.k2js.facade.MainCallParameters;
import java.io.File;
import java.util.Arrays;
import java.util.List;
import static org.jetbrains.jet.cli.common.messages.CompilerMessageLocation.NO_LOCATION;
@@ -151,6 +152,6 @@ public class K2JSCompiler extends CLICompiler<K2JSCompilerArguments, K2JSCompile
// lets discover the JS library definitions on the classpath
return new ClassPathLibraryDefintionsConfig(project, moduleId, ecmaVersion);
}
return new LibrarySourcesConfig(project, moduleId, arguments.libraryFiles, ecmaVersion);
return new LibrarySourcesConfig(project, moduleId, Arrays.asList(arguments.libraryFiles), ecmaVersion);
}
}
@@ -39,6 +39,7 @@ import org.jetbrains.jet.plugin.project.JsModuleDetector;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import static org.jetbrains.jet.plugin.compiler.CompilerUtils.invokeExecMethod;
@@ -166,7 +167,7 @@ public final class K2JSCompiler implements TranslatingCompiler {
}
private static void addLibLocationAndTarget(@NotNull Module module, @NotNull ArrayList<String> args) {
Pair<String[], String> libLocationAndTarget = JsModuleDetector.getLibLocationAndTargetForProject(module);
Pair<List<String>, String> libLocationAndTarget = JsModuleDetector.getLibLocationAndTargetForProject(module);
StringBuilder sb = StringBuilderSpinAllocator.alloc();
AccessToken token = ReadAction.start();
@@ -16,6 +16,7 @@
package org.jetbrains.jet.plugin.project;
import com.google.common.collect.Lists;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleManager;
import com.intellij.openapi.project.Project;
@@ -27,6 +28,8 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.psi.JetFile;
import java.util.List;
/**
* @author Pavel Talanov
* <p/>
@@ -53,7 +56,7 @@ public final class JsModuleDetector {
}
@NotNull
public static Pair<String[], String> getLibLocationAndTargetForProject(@NotNull Project project) {
public static Pair<List<String>, String> getLibLocationAndTargetForProject(@NotNull Project project) {
Module module = getJSModule(project);
if (module == null) {
return Pair.empty();
@@ -64,11 +67,15 @@ public final class JsModuleDetector {
}
@NotNull
public static Pair<String[], String> getLibLocationAndTargetForProject(@NotNull Module module) {
public static Pair<List<String>, String> getLibLocationAndTargetForProject(@NotNull Module module) {
K2JSModuleComponent jsModuleComponent = K2JSModuleComponent.getInstance(module);
String pathToJavaScriptLibrary = jsModuleComponent.getPathToJavaScriptLibrary();
String basePath = ModuleRootManager.getInstance(module).getContentRoots()[0].getPath();
return Pair.create(new String[] {basePath + pathToJavaScriptLibrary}, jsModuleComponent.getEcmaVersion().toString());
List<String> pathsToJSLib = Lists.newArrayList();
if (pathToJavaScriptLibrary != null) {
pathsToJSLib.add(basePath + pathToJavaScriptLibrary);
}
return Pair.create(pathsToJSLib, jsModuleComponent.getEcmaVersion().toString());
}
@Nullable
@@ -21,7 +21,6 @@ import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Key;
import com.intellij.openapi.util.io.FileUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.k2js.utils.JetFileUtils;
@@ -42,12 +41,12 @@ public class LibrarySourcesConfig extends Config {
public static final Key<String> EXTERNAL_MODULE_NAME = new Key<String>("externalModule");
public static final String UNKNOWN_EXTERNAL_MODULE_NAME = "<unknown>";
@Nullable
private final String[] files;
@NotNull
private final List<String> files;
public LibrarySourcesConfig(@NotNull Project project,
@NotNull String moduleId,
@Nullable String[] files,
@NotNull List<String> files,
@NotNull EcmaVersion ecmaVersion) {
super(project, moduleId, ecmaVersion);
this.files = files;
@@ -56,7 +55,7 @@ public class LibrarySourcesConfig extends Config {
@NotNull
@Override
public List<JetFile> generateLibFiles() {
if (files == null) {
if (files.isEmpty()) {
return Collections.emptyList();
}