Check jar name before trying to load JS library version
#KT-16596 Fixed
This commit is contained in:
@@ -30,6 +30,7 @@ public class PathUtil {
|
||||
public static final String JPS_KOTLIN_HOME_PROPERTY = "jps.kotlin.home";
|
||||
|
||||
public static final String JS_LIB_JAR_NAME = "kotlin-stdlib-js.jar";
|
||||
public static final String JS_LIB_10_JAR_NAME = "kotlin-jslib.jar";
|
||||
public static final String ALLOPEN_PLUGIN_JAR_NAME = "allopen-compiler-plugin.jar";
|
||||
public static final String NOARG_PLUGIN_JAR_NAME = "noarg-compiler-plugin.jar";
|
||||
public static final String JS_LIB_SRC_JAR_NAME = "kotlin-stdlib-js-sources.jar";
|
||||
@@ -43,6 +44,8 @@ public class PathUtil {
|
||||
public static final String KOTLIN_COMPILER_JAR = "kotlin-compiler.jar";
|
||||
|
||||
public static final Pattern KOTLIN_RUNTIME_JAR_PATTERN = Pattern.compile("kotlin-(stdlib|runtime)(-\\d[\\d.]+(-.+)?)?\\.jar");
|
||||
public static final Pattern KOTLIN_STDLIB_JS_JAR_PATTERN = Pattern.compile("kotlin-stdlib-js.*\\.jar");
|
||||
public static final Pattern KOTLIN_JS_LIBRARY_JAR_PATTERN = Pattern.compile("kotlin-js-library.*\\.jar");
|
||||
|
||||
public static final String HOME_FOLDER_NAME = "kotlinc";
|
||||
private static final File NO_PATH = new File("<no_path>");
|
||||
|
||||
+8
-4
@@ -25,9 +25,9 @@ import com.intellij.openapi.vfs.StandardFileSystems
|
||||
import com.intellij.openapi.vfs.VfsUtilCore
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import org.jetbrains.kotlin.utils.LibraryUtils
|
||||
|
||||
import org.jetbrains.kotlin.utils.PathUtil
|
||||
import java.io.File
|
||||
import java.util.Arrays
|
||||
import java.util.*
|
||||
import java.util.jar.Attributes
|
||||
|
||||
object JsLibraryStdDetectionUtil {
|
||||
@@ -57,8 +57,12 @@ object JsLibraryStdDetectionUtil {
|
||||
for (root in classesRoots) {
|
||||
if (root.fileSystem.protocol !== StandardFileSystems.JAR_PROTOCOL) continue
|
||||
|
||||
val jar = VfsUtilCore.getVirtualFileForJar(root)
|
||||
if (jar != null) {
|
||||
val jar = VfsUtilCore.getVirtualFileForJar(root) ?: continue
|
||||
val name = jar.name
|
||||
if (name == PathUtil.JS_LIB_JAR_NAME || name == PathUtil.JS_LIB_10_JAR_NAME ||
|
||||
PathUtil.KOTLIN_STDLIB_JS_JAR_PATTERN.matcher(name).matches() ||
|
||||
PathUtil.KOTLIN_JS_LIBRARY_JAR_PATTERN.matcher(name).matches()) {
|
||||
|
||||
var isJSStdLib = jar.getUserData(IS_JS_LIBRARY_STD_LIB)
|
||||
if (isJSStdLib == null) {
|
||||
isJSStdLib = LibraryUtils.isKotlinJavascriptStdLibrary(File(jar.path))
|
||||
|
||||
Reference in New Issue
Block a user