Extract common logic for parsing platform from test module name
This commit is contained in:
+1
-11
@@ -132,17 +132,7 @@ abstract class AbstractFirDiagnosticsSmokeTest : BaseDiagnosticsTest() {
|
|||||||
private val builtInsModuleInfo = BuiltInModuleInfo(Name.special("<built-ins>"))
|
private val builtInsModuleInfo = BuiltInModuleInfo(Name.special("<built-ins>"))
|
||||||
|
|
||||||
protected open fun createModule(moduleName: String): TestModuleInfo {
|
protected open fun createModule(moduleName: String): TestModuleInfo {
|
||||||
val nameSuffix = moduleName.substringAfterLast("-", "").toUpperCase()
|
parseModulePlatformByName(moduleName)
|
||||||
@Suppress("UNUSED_VARIABLE")
|
|
||||||
val platform =
|
|
||||||
when {
|
|
||||||
nameSuffix.isEmpty() -> null // TODO(dsavvinov): this leads to 'null'-platform in ModuleDescriptor
|
|
||||||
nameSuffix == "COMMON" -> CommonPlatforms.defaultCommonPlatform
|
|
||||||
nameSuffix == "JVM" -> JvmPlatforms.unspecifiedJvmPlatform // TODO(dsavvinov): determine JvmTarget precisely
|
|
||||||
nameSuffix == "JS" -> JsPlatforms.defaultJsPlatform
|
|
||||||
nameSuffix == "NATIVE" -> KonanPlatforms.defaultKonanPlatform
|
|
||||||
else -> throw IllegalStateException("Can't determine platform by name $nameSuffix")
|
|
||||||
}
|
|
||||||
return TestModuleInfo(Name.special("<$moduleName>"))
|
return TestModuleInfo(Name.special("<$moduleName>"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-10
@@ -589,16 +589,7 @@ abstract class AbstractDiagnosticsTest : BaseDiagnosticsTest() {
|
|||||||
emptyList()
|
emptyList()
|
||||||
|
|
||||||
protected open fun createModule(moduleName: String, storageManager: StorageManager): ModuleDescriptorImpl {
|
protected open fun createModule(moduleName: String, storageManager: StorageManager): ModuleDescriptorImpl {
|
||||||
val nameSuffix = moduleName.substringAfterLast("-", "").toUpperCase()
|
val platform = parseModulePlatformByName(moduleName)
|
||||||
val platform =
|
|
||||||
when {
|
|
||||||
nameSuffix.isEmpty() -> null // TODO(dsavvinov): this leads to 'null'-platform in ModuleDescriptor
|
|
||||||
nameSuffix == "COMMON" -> CommonPlatforms.defaultCommonPlatform
|
|
||||||
nameSuffix == "JVM" -> JvmPlatforms.unspecifiedJvmPlatform // TODO(dsavvinov): determine JvmTarget precisely
|
|
||||||
nameSuffix == "JS" -> JsPlatforms.defaultJsPlatform
|
|
||||||
nameSuffix == "NATIVE" -> KonanPlatforms.defaultKonanPlatform
|
|
||||||
else -> throw IllegalStateException("Can't determine platform by name $nameSuffix")
|
|
||||||
}
|
|
||||||
val builtIns = JvmBuiltIns(storageManager, JvmBuiltIns.Kind.FROM_CLASS_LOADER)
|
val builtIns = JvmBuiltIns(storageManager, JvmBuiltIns.Kind.FROM_CLASS_LOADER)
|
||||||
return ModuleDescriptorImpl(Name.special("<$moduleName>"), storageManager, builtIns, platform)
|
return ModuleDescriptorImpl(Name.special("<$moduleName>"), storageManager, builtIns, platform)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,15 +42,20 @@ import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
|||||||
import org.jetbrains.kotlin.diagnostics.*
|
import org.jetbrains.kotlin.diagnostics.*
|
||||||
import org.jetbrains.kotlin.load.java.InternalFlexibleTypeTransformer
|
import org.jetbrains.kotlin.load.java.InternalFlexibleTypeTransformer
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
|
import org.jetbrains.kotlin.platform.CommonPlatforms
|
||||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
import org.jetbrains.kotlin.resolve.BindingContext
|
import org.jetbrains.kotlin.resolve.BindingContext
|
||||||
import org.jetbrains.kotlin.platform.TargetPlatform
|
import org.jetbrains.kotlin.platform.TargetPlatform
|
||||||
|
import org.jetbrains.kotlin.platform.js.JsPlatforms
|
||||||
|
import org.jetbrains.kotlin.platform.jvm.JvmPlatforms
|
||||||
|
import org.jetbrains.kotlin.platform.konan.KonanPlatforms
|
||||||
import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowValueFactoryImpl
|
import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowValueFactoryImpl
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||||
import org.jetbrains.kotlin.utils.addIfNotNull
|
import org.jetbrains.kotlin.utils.addIfNotNull
|
||||||
import org.junit.Assert
|
import org.junit.Assert
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
import java.lang.IllegalStateException
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import java.util.regex.Pattern
|
import java.util.regex.Pattern
|
||||||
import kotlin.reflect.jvm.javaField
|
import kotlin.reflect.jvm.javaField
|
||||||
@@ -473,4 +478,17 @@ abstract class BaseDiagnosticsTest : KotlinMultiFileTestWithJava<TestModule, Tes
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun parseJvmTarget(directiveMap: Map<String, String>) = directiveMap[JVM_TARGET]?.let { JvmTarget.fromString(it) }
|
private fun parseJvmTarget(directiveMap: Map<String, String>) = directiveMap[JVM_TARGET]?.let { JvmTarget.fromString(it) }
|
||||||
|
|
||||||
|
protected fun parseModulePlatformByName(moduleName: String): TargetPlatform? {
|
||||||
|
val nameSuffix = moduleName.substringAfterLast("-", "").toUpperCase()
|
||||||
|
return when {
|
||||||
|
nameSuffix == "COMMON" -> CommonPlatforms.defaultCommonPlatform
|
||||||
|
nameSuffix == "JVM" -> JvmPlatforms.unspecifiedJvmPlatform // TODO(dsavvinov): determine JvmTarget precisely
|
||||||
|
nameSuffix == "JS" -> JsPlatforms.defaultJsPlatform
|
||||||
|
nameSuffix == "NATIVE" -> KonanPlatforms.defaultKonanPlatform
|
||||||
|
nameSuffix.isEmpty() -> null // TODO(dsavvinov): this leads to 'null'-platform in ModuleDescriptor
|
||||||
|
else -> throw IllegalStateException("Can't determine platform by name $nameSuffix")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user