MPP: Rewrite ImportedModule name instead of wrapping it

Otherwise this instance is not deserialized properly
breaking import on opening project in AS

 #KT-27485 Fixed
 #KT-27473 Fixed
This commit is contained in:
Alexey Sedunov
2018-10-15 14:29:11 +03:00
parent bda1ef8d57
commit ca2367f2b5
3 changed files with 24 additions and 9 deletions
@@ -55,9 +55,8 @@ class KotlinAndroidMPPGradleProjectResolver : AbstractProjectResolverExtension()
for (childNode in ExternalSystemApiUtil.getChildren(ideModule, GradleSourceSetData.KEY)) {
if (childNode.kotlinSourceSet == null) continue
val moduleName = childNode.data.internalName
val importedModule = object : ImportedModule(gradleModule) {
override fun getName() = moduleName
}
val importedModule = ImportedModule(gradleModule)
importedModuleNameField.set(importedModule, moduleName)
ideModule.createChild(IMPORTED_MODULE, importedModule)
}
}
@@ -90,4 +89,10 @@ class KotlinAndroidMPPGradleProjectResolver : AbstractProjectResolverExtension()
.toList()
mainModuleData.createChild(KotlinAndroidSourceSetData.KEY, KotlinAndroidSourceSetData(androidSourceSets))
}
companion object {
val importedModuleNameField by lazy {
ImportedModule::class.java.getDeclaredField("myName").apply { isAccessible = true }
}
}
}
@@ -55,9 +55,8 @@ class KotlinAndroidMPPGradleProjectResolver : AbstractProjectResolverExtension()
for (childNode in ExternalSystemApiUtil.getChildren(ideModule, GradleSourceSetData.KEY)) {
if (childNode.kotlinSourceSet == null) continue
val moduleName = childNode.data.internalName
val importedModule = object : ImportedModule(gradleModule) {
override fun getName() = moduleName
}
val importedModule = ImportedModule(gradleModule)
importedModuleNameField.set(importedModule, moduleName)
ideModule.createChild(IMPORTED_MODULE, importedModule)
}
}
@@ -90,4 +89,10 @@ class KotlinAndroidMPPGradleProjectResolver : AbstractProjectResolverExtension()
.toList()
mainModuleData.createChild(KotlinAndroidSourceSetData.KEY, KotlinAndroidSourceSetData(androidSourceSets))
}
companion object {
val importedModuleNameField by lazy {
ImportedModule::class.java.getDeclaredField("myName").apply { isAccessible = true }
}
}
}
@@ -55,9 +55,8 @@ class KotlinAndroidMPPGradleProjectResolver : AbstractProjectResolverExtension()
for (childNode in ExternalSystemApiUtil.getChildren(ideModule, GradleSourceSetData.KEY)) {
if (childNode.kotlinSourceSet == null) continue
val moduleName = childNode.data.internalName
val importedModule = object : ImportedModule(gradleModule) {
override fun getName() = moduleName
}
val importedModule = ImportedModule(gradleModule)
importedModuleNameField.set(importedModule, moduleName)
ideModule.createChild(IMPORTED_MODULE, importedModule)
}
}
@@ -90,4 +89,10 @@ class KotlinAndroidMPPGradleProjectResolver : AbstractProjectResolverExtension()
.toList()
mainModuleData.createChild(KotlinAndroidSourceSetData.KEY, KotlinAndroidSourceSetData(androidSourceSets))
}
companion object {
val importedModuleNameField by lazy {
ImportedModule::class.java.getDeclaredField("myName").apply { isAccessible = true }
}
}
}