JS backend: check for Implementation-Title in order to detect kotlin js stdlib
This commit is contained in:
+9
-1
@@ -17,11 +17,14 @@
|
|||||||
package org.jetbrains.jet.plugin.framework;
|
package org.jetbrains.jet.plugin.framework;
|
||||||
|
|
||||||
import com.intellij.openapi.util.io.JarUtil;
|
import com.intellij.openapi.util.io.JarUtil;
|
||||||
|
import com.intellij.openapi.vfs.StandardFileSystems;
|
||||||
import com.intellij.openapi.vfs.VfsUtilCore;
|
import com.intellij.openapi.vfs.VfsUtilCore;
|
||||||
import com.intellij.openapi.vfs.VirtualFile;
|
import com.intellij.openapi.vfs.VirtualFile;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.jet.utils.LibraryUtils;
|
||||||
import org.jetbrains.jet.utils.PathUtil;
|
import org.jetbrains.jet.utils.PathUtil;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.jar.Attributes;
|
import java.util.jar.Attributes;
|
||||||
|
|
||||||
@@ -33,7 +36,12 @@ public class JsLibraryStdDetectionUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (VirtualFile root : classesRoots) {
|
for (VirtualFile root : classesRoots) {
|
||||||
if (root.getName().equals(PathUtil.JS_LIB_JAR_NAME)) {
|
if (root.getFileSystem().getProtocol() != StandardFileSystems.JAR_PROTOCOL) continue;
|
||||||
|
|
||||||
|
VirtualFile jar = VfsUtilCore.getVirtualFileForJar(root);
|
||||||
|
assert jar != null;
|
||||||
|
|
||||||
|
if (LibraryUtils.isJsRuntimeLibrary(new File(jar.getPath()))) {
|
||||||
assert JsHeaderLibraryDetectionUtil.isJsHeaderLibraryDetected(classesRoots) : "StdLib should also be detected as headers library";
|
assert JsHeaderLibraryDetectionUtil.isJsHeaderLibraryDetected(classesRoots) : "StdLib should also be detected as headers library";
|
||||||
|
|
||||||
return JarUtil.getJarAttribute(VfsUtilCore.virtualToIoFile(root), Attributes.Name.IMPLEMENTATION_VERSION);
|
return JarUtil.getJarAttribute(VfsUtilCore.virtualToIoFile(root), Attributes.Name.IMPLEMENTATION_VERSION);
|
||||||
|
|||||||
Reference in New Issue
Block a user