Add test (with incorrect work yet) for KT-17374
This commit is contained in:
+1
@@ -0,0 +1 @@
|
||||
<error descr="[NO_ACTUAL_FOR_EXPECT] Expected function 'foo' has no actual declaration in module jvm_base for JVM"><error descr="[NO_ACTUAL_FOR_EXPECT] Expected function 'foo' has no actual declaration in module jvm_user for JVM">expect fun foo(): Int</error></error>
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fun bar(): Int {
|
||||
return 42
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fun user(): Int {
|
||||
return 2 * bar()
|
||||
}
|
||||
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime
|
||||
import org.jetbrains.kotlin.config.JvmTarget
|
||||
import org.jetbrains.kotlin.config.TargetPlatformKind
|
||||
import org.jetbrains.kotlin.idea.framework.JSLibraryKind
|
||||
import org.jetbrains.kotlin.idea.stubs.createFacet
|
||||
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase
|
||||
import org.jetbrains.kotlin.test.TestJdkKind
|
||||
|
||||
@@ -85,4 +86,24 @@ class MultiPlatformHighlightingTest : AbstractMultiModuleHighlightingTest() {
|
||||
fun ignore_testNestedClassWithoutImpl() {
|
||||
doMultiPlatformTest(TargetPlatformKind.Jvm[JvmTarget.JVM_1_6])
|
||||
}
|
||||
|
||||
fun testTransitive() {
|
||||
val commonModule = module("common", TestJdkKind.MOCK_JDK)
|
||||
commonModule.createFacet(TargetPlatformKind.Common, false)
|
||||
val jvmPlatform = TargetPlatformKind.Jvm[JvmTarget.JVM_1_6]
|
||||
|
||||
val baseModule = module("jvm_base", TestJdkKind.MOCK_JDK)
|
||||
baseModule.createFacet(jvmPlatform, implementedModuleName = "common")
|
||||
baseModule.enableMultiPlatform()
|
||||
baseModule.addDependency(commonModule)
|
||||
|
||||
val userModule = module("jvm_user", TestJdkKind.MOCK_JDK)
|
||||
userModule.createFacet(jvmPlatform)
|
||||
userModule.enableMultiPlatform()
|
||||
userModule.addDependency(commonModule)
|
||||
userModule.addDependency(baseModule)
|
||||
|
||||
checkHighlightingInAllFiles()
|
||||
}
|
||||
|
||||
}
|
||||
@@ -118,15 +118,24 @@ abstract class AbstractMultiModuleTest : DaemonAnalyzerTestCase() {
|
||||
}
|
||||
}
|
||||
|
||||
fun Module.createFacet(platformKind: TargetPlatformKind<*>? = null, useProjectSettings: Boolean = true) {
|
||||
fun Module.createFacet(
|
||||
platformKind: TargetPlatformKind<*>? = null,
|
||||
useProjectSettings: Boolean = true,
|
||||
implementedModuleName: String? = null
|
||||
) {
|
||||
val accessToken = WriteAction.start()
|
||||
try {
|
||||
val modelsProvider = IdeModifiableModelsProviderImpl(project)
|
||||
getOrCreateFacet(modelsProvider, useProjectSettings).configuration.settings.initializeIfNeeded(
|
||||
this,
|
||||
modelsProvider.getModifiableRootModel(this),
|
||||
platformKind
|
||||
)
|
||||
with (getOrCreateFacet(modelsProvider, useProjectSettings).configuration.settings) {
|
||||
initializeIfNeeded(
|
||||
this@createFacet,
|
||||
modelsProvider.getModifiableRootModel(this@createFacet),
|
||||
platformKind
|
||||
)
|
||||
if (implementedModuleName != null) {
|
||||
this.implementedModuleName = implementedModuleName
|
||||
}
|
||||
}
|
||||
modelsProvider.commit()
|
||||
}
|
||||
finally {
|
||||
|
||||
Reference in New Issue
Block a user