JVM facade: for Java resolve, always use JvmPlatform resolver

So #KT-20281 Fixed
This commit is contained in:
Mikhail Glukhikh
2018-02-02 13:49:11 +03:00
parent c90056f8c4
commit 19beaf57a7
5 changed files with 16 additions and 1 deletions
@@ -70,7 +70,7 @@ object JvmAnalyzerFacade : AnalyzerFacade() {
@Suppress("UNCHECKED_CAST")
val resolverForReferencedModule = referencedClassModule?.let { resolverForProject.tryGetResolverForModule(it as M) }
val resolverForModule = resolverForReferencedModule ?: run {
val resolverForModule = resolverForReferencedModule?.takeIf { referencedClassModule.platform == JvmPlatform } ?: run {
// in case referenced class lies outside of our resolver, resolve the class as if it is inside our module
// this leads to java class being resolved several times
resolverForProject.resolverForModule(moduleInfo)
@@ -0,0 +1,7 @@
// !CHECK_HIGHLIGHTING
data class User(val name: String, val password: String)
expect open class Expected {
val user: User
}
@@ -0,0 +1,3 @@
public class ExpectedImpl {
public final User user = new User("User", "12345");
}
@@ -0,0 +1 @@
actual typealias <lineMarker>Expected</lineMarker> = ExpectedImpl
@@ -58,6 +58,10 @@ class MultiModuleLineMarkerTest : AbstractMultiModuleHighlightingTest() {
doMultiPlatformTest(TargetPlatformKind.Jvm[JvmTarget.JVM_1_6])
}
fun testFromClassToJavaAliasInTest() {
doMultiPlatformTest(TargetPlatformKind.Jvm[JvmTarget.JVM_1_6])
}
fun testFromCommonToJvmHeader() {
doMultiPlatformTest(TargetPlatformKind.Jvm[JvmTarget.JVM_1_6])
}