Deal with absence of js library. fix K2JSMessagingTest
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user