Get rid of usages of internal LibraryImpl class
KT-39327
This commit is contained in:
+4
-22
@@ -30,9 +30,7 @@ import com.intellij.openapi.module.Module
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.roots.OrderRootType
|
||||
import com.intellij.openapi.roots.impl.libraries.LibraryEx
|
||||
import com.intellij.openapi.roots.impl.libraries.LibraryImpl
|
||||
import com.intellij.openapi.roots.libraries.Library
|
||||
import com.intellij.openapi.roots.libraries.PersistentLibraryKind
|
||||
import com.intellij.openapi.util.Key
|
||||
import com.intellij.util.PathUtil
|
||||
import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments
|
||||
@@ -186,10 +184,11 @@ class KotlinGradleLibraryDataService : AbstractProjectDataService<LibraryData, V
|
||||
val modifiableModel = modelsProvider.getModifiableLibraryModel(ideLibrary) as LibraryEx.ModifiableModelEx
|
||||
if (anyNonJvmModules || ideLibrary.looksAsNonJvmLibrary()) {
|
||||
detectLibraryKind(modifiableModel.getFiles(OrderRootType.CLASSES))?.let { modifiableModel.kind = it }
|
||||
} else if (ideLibrary is LibraryImpl
|
||||
&& (ideLibrary.kind === JSLibraryKind || ideLibrary.kind === NativeLibraryKind || ideLibrary.kind === CommonLibraryKind)
|
||||
} else if (
|
||||
ideLibrary is LibraryEx &&
|
||||
(ideLibrary.kind === JSLibraryKind || ideLibrary.kind === NativeLibraryKind || ideLibrary.kind === CommonLibraryKind)
|
||||
) {
|
||||
resetLibraryKind(modifiableModel)
|
||||
modifiableModel.kind = null
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -203,23 +202,6 @@ class KotlinGradleLibraryDataService : AbstractProjectDataService<LibraryData, V
|
||||
return getFiles(OrderRootType.CLASSES).firstOrNull()?.extension == KLIB_FILE_EXTENSION
|
||||
}
|
||||
|
||||
private fun resetLibraryKind(modifiableModel: LibraryEx.ModifiableModelEx) {
|
||||
try {
|
||||
val cls = LibraryImpl::class.java
|
||||
// Don't use name-based lookup because field names are scrambled in IDEA Ultimate
|
||||
for (field in cls.declaredFields) {
|
||||
if (field.type == PersistentLibraryKind::class.java) {
|
||||
field.isAccessible = true
|
||||
field.set(modifiableModel, null)
|
||||
return
|
||||
}
|
||||
}
|
||||
LOG.info("Could not find field of type PersistentLibraryKind in LibraryImpl.class")
|
||||
} catch (e: Exception) {
|
||||
LOG.info("Failed to reset library kind", e)
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
val LOG = Logger.getInstance(KotlinGradleLibraryDataService::class.java)
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@ import com.intellij.openapi.roots.impl.ContentEntryImpl
|
||||
import com.intellij.openapi.roots.impl.SourceFolderImpl
|
||||
import com.intellij.openapi.roots.impl.libraries.ApplicationLibraryTable
|
||||
import com.intellij.openapi.roots.impl.libraries.LibraryEx
|
||||
import com.intellij.openapi.roots.impl.libraries.LibraryImpl
|
||||
import com.intellij.openapi.roots.libraries.Library
|
||||
import com.intellij.openapi.roots.libraries.LibraryKind
|
||||
import com.intellij.openapi.roots.libraries.LibraryTablesRegistrar
|
||||
@@ -107,7 +106,7 @@ class KotlinNonJvmSourceRootConverterProvider : ConverterProvider("kotlin-non-jv
|
||||
|
||||
class ConverterImpl(private val context: ConversionContext) : ProjectConverter() {
|
||||
private val projectLibrariesByName by lazy {
|
||||
context.projectLibrariesSettings.projectLibraries.groupBy { it.getAttributeValue(LibraryImpl.LIBRARY_NAME_ATTR) }
|
||||
context.projectLibrariesSettings.projectLibraries.groupBy { it.getAttributeValue(NAME_ATTRIBUTE) }
|
||||
}
|
||||
|
||||
private fun findGlobalLibrary(name: String) = ApplicationLibraryTable.getApplicationTable().getLibraryByName(name)
|
||||
|
||||
Reference in New Issue
Block a user