Support .jar archives in friend paths (for internal visibility)
This commit is contained in:
+6
-3
@@ -27,6 +27,7 @@ import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberDescriptor
|
||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedTypeAliasDescriptor
|
||||
import java.io.File
|
||||
import java.nio.file.Paths
|
||||
|
||||
interface ModuleVisibilityManager {
|
||||
val chunk: Collection<Module>
|
||||
@@ -66,10 +67,12 @@ fun isContainedByCompiledPartOfOurModule(descriptor: DeclarationDescriptor, outD
|
||||
|
||||
if (binaryClass is VirtualFileKotlinClass) {
|
||||
val file = binaryClass.file
|
||||
if (file.fileSystem.protocol == StandardFileSystems.FILE_PROTOCOL) {
|
||||
val ioFile = VfsUtilCore.virtualToIoFile(file)
|
||||
return ioFile.absolutePath.startsWith(outDirectory.absolutePath + File.separator)
|
||||
val ioFile = when (file.fileSystem.protocol) {
|
||||
StandardFileSystems.FILE_PROTOCOL -> VfsUtilCore.virtualToIoFile(file)
|
||||
StandardFileSystems.JAR_PROTOCOL -> VfsUtilCore.getVirtualFileForJar(file)?.let(VfsUtilCore::virtualToIoFile)
|
||||
else -> null
|
||||
}
|
||||
return ioFile != null && Paths.get(ioFile.toURI()).startsWith(Paths.get(outDirectory.toURI()))
|
||||
}
|
||||
|
||||
return false
|
||||
|
||||
Reference in New Issue
Block a user