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.JvmTarget
|
||||||
import org.jetbrains.kotlin.config.TargetPlatformKind
|
import org.jetbrains.kotlin.config.TargetPlatformKind
|
||||||
import org.jetbrains.kotlin.idea.framework.JSLibraryKind
|
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.idea.test.PluginTestCaseBase
|
||||||
import org.jetbrains.kotlin.test.TestJdkKind
|
import org.jetbrains.kotlin.test.TestJdkKind
|
||||||
|
|
||||||
@@ -85,4 +86,24 @@ class MultiPlatformHighlightingTest : AbstractMultiModuleHighlightingTest() {
|
|||||||
fun ignore_testNestedClassWithoutImpl() {
|
fun ignore_testNestedClassWithoutImpl() {
|
||||||
doMultiPlatformTest(TargetPlatformKind.Jvm[JvmTarget.JVM_1_6])
|
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()
|
val accessToken = WriteAction.start()
|
||||||
try {
|
try {
|
||||||
val modelsProvider = IdeModifiableModelsProviderImpl(project)
|
val modelsProvider = IdeModifiableModelsProviderImpl(project)
|
||||||
getOrCreateFacet(modelsProvider, useProjectSettings).configuration.settings.initializeIfNeeded(
|
with (getOrCreateFacet(modelsProvider, useProjectSettings).configuration.settings) {
|
||||||
this,
|
initializeIfNeeded(
|
||||||
modelsProvider.getModifiableRootModel(this),
|
this@createFacet,
|
||||||
platformKind
|
modelsProvider.getModifiableRootModel(this@createFacet),
|
||||||
)
|
platformKind
|
||||||
|
)
|
||||||
|
if (implementedModuleName != null) {
|
||||||
|
this.implementedModuleName = implementedModuleName
|
||||||
|
}
|
||||||
|
}
|
||||||
modelsProvider.commit()
|
modelsProvider.commit()
|
||||||
}
|
}
|
||||||
finally {
|
finally {
|
||||||
|
|||||||
Reference in New Issue
Block a user