diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/moduleVisibilityUtils.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/moduleVisibilityUtils.kt index 4b3693cb13a..a5f850805f9 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/moduleVisibilityUtils.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/moduleVisibilityUtils.kt @@ -42,8 +42,8 @@ interface ModuleVisibilityManager { } } -fun isContainedByCompiledPartOfOurModule(descriptor: DeclarationDescriptor, outDirectory: File?): Boolean { - if (outDirectory == null) return false +fun isContainedByCompiledPartOfOurModule(descriptor: DeclarationDescriptor, friendPath: File?): Boolean { + if (friendPath == null) return false val packageFragment = DescriptorUtils.getParentOfType(descriptor, PackageFragmentDescriptor::class.java, false) if (packageFragment !is LazyJavaPackageFragment) return false @@ -66,12 +66,16 @@ fun isContainedByCompiledPartOfOurModule(descriptor: DeclarationDescriptor, outD if (binaryClass is VirtualFileKotlinClass) { val file = binaryClass.file - val ioFile = when (file.fileSystem.protocol) { - StandardFileSystems.FILE_PROTOCOL -> VfsUtilCore.virtualToIoFile(file) - StandardFileSystems.JAR_PROTOCOL -> VfsUtilCore.getVirtualFileForJar(file)?.let(VfsUtilCore::virtualToIoFile) - else -> null + when (file.fileSystem.protocol) { + StandardFileSystems.FILE_PROTOCOL -> { + val ioFile = VfsUtilCore.virtualToIoFile(file) + return ioFile.toPath().startsWith(friendPath.toPath()) + } + StandardFileSystems.JAR_PROTOCOL -> { + val ioFile = VfsUtilCore.getVirtualFileForJar(file)?.let(VfsUtilCore::virtualToIoFile) + return ioFile != null && ioFile.toPath() == friendPath.toPath() + } } - return ioFile != null && ioFile.toPath().startsWith(outDirectory.toPath()) } return false