From 7dbcbeb794cb74cc8e0a5953166dad1a68d76c4a Mon Sep 17 00:00:00 2001 From: Zalim Bashorov Date: Fri, 18 Nov 2016 15:53:52 +0300 Subject: [PATCH] IDE: fix detecting target platform for module when it contains js stdlib without regular name Don't use fixed library name to detect JS stdlib. --- .../idea/framework/JsLibraryStdDetectionUtil.java | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/framework/JsLibraryStdDetectionUtil.java b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/framework/JsLibraryStdDetectionUtil.java index 672d41e7384..c41adb2cdfb 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/framework/JsLibraryStdDetectionUtil.java +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/framework/JsLibraryStdDetectionUtil.java @@ -27,7 +27,6 @@ import com.intellij.openapi.vfs.VirtualFile; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.kotlin.utils.LibraryUtils; -import org.jetbrains.kotlin.utils.PathUtil; import java.io.File; import java.util.Arrays; @@ -37,26 +36,22 @@ import java.util.jar.Attributes; public class JsLibraryStdDetectionUtil { private static final Key IS_JS_LIBRARY_STD_LIB = Key.create("IS_JS_LIBRARY_STD_LIB"); - public static String getJsLibraryStdVersion(@NotNull List classesRoots) { - return getJsLibraryStdVersion(classesRoots, true); - } - public static boolean hasJsStdlibJar(@NotNull Library library) { if (library instanceof LibraryEx && ((LibraryEx) library).isDisposed()) return false; if (!KotlinJavaScriptLibraryDetectionUtil.isKotlinJavaScriptLibrary(library)) return false; List classes = Arrays.asList(library.getFiles(OrderRootType.CLASSES)); - return getJsLibraryStdVersion(classes, false) != null; + return getJsLibraryStdVersion(classes) != null; } - private static String getJsLibraryStdVersion(@NotNull List classesRoots, boolean fixedJarName) { + public static String getJsLibraryStdVersion(@NotNull List classesRoots) { if (JavaRuntimeDetectionUtil.getJavaRuntimeVersion(classesRoots) != null) { // Prevent clashing with java runtime, in case when library collects all roots. return null; } - VirtualFile jar = fixedJarName ? LibraryUtils.getJarFile(classesRoots, PathUtil.JS_LIB_JAR_NAME) : getJsStdLibJar(classesRoots); + VirtualFile jar = getJsStdLibJar(classesRoots); if (jar == null) return null; return JarUtil.getJarAttribute(VfsUtilCore.virtualToIoFile(jar), Attributes.Name.IMPLEMENTATION_VERSION);