Check bad root presence before checking platform (KT-30442)

Detect platform based on libraries content is a long operation and should
not be called from `isConversionNeeded`. Do other checks before it.
This commit is contained in:
Nikolay Krasko
2019-04-04 20:12:34 +03:00
parent 03c6e23448
commit e4cc94e0a8
@@ -188,12 +188,15 @@ class KotlinNonJvmSourceRootConverterProvider : ConverterProvider("kotlin-non-jv
override fun isConversionNeeded(settings: ModuleSettings): Boolean { override fun isConversionNeeded(settings: ModuleSettings): Boolean {
if (settings.isExternalModule()) return false if (settings.isExternalModule()) return false
val targetPlatform = settings.detectPlatform() val hasMigrationRoots = settings.getSourceFolderElements().any {
if (targetPlatform == JvmPlatform) return false
return settings.getSourceFolderElements().any {
JpsModuleRootModelSerializer.loadSourceRoot(it).rootType in rootTypesToMigrate JpsModuleRootModelSerializer.loadSourceRoot(it).rootType in rootTypesToMigrate
} }
if (!hasMigrationRoots) {
return false
}
val targetPlatform = settings.detectPlatform()
return (targetPlatform != JvmPlatform)
} }
override fun process(settings: ModuleSettings) { override fun process(settings: ModuleSettings) {