Do not load JvmPackageName-annotated parts on Kotlin < 1.2
This commit is contained in:
+2
@@ -25,4 +25,6 @@ class CompilerDeserializationConfiguration(languageVersionSettings: LanguageVers
|
|||||||
override val typeAliasesAllowed = languageVersionSettings.supportsFeature(LanguageFeature.TypeAliases)
|
override val typeAliasesAllowed = languageVersionSettings.supportsFeature(LanguageFeature.TypeAliases)
|
||||||
|
|
||||||
override val skipMetadataVersionCheck = languageVersionSettings.getFlag(AnalysisFlag.skipMetadataVersionCheck)
|
override val skipMetadataVersionCheck = languageVersionSettings.getFlag(AnalysisFlag.skipMetadataVersionCheck)
|
||||||
|
|
||||||
|
override val isJvmPackageNameSupported = languageVersionSettings.supportsFeature(LanguageFeature.JvmPackageName)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ var v: Int = 1
|
|||||||
inline fun i(block: () -> Unit) = block()
|
inline fun i(block: () -> Unit) = block()
|
||||||
|
|
||||||
// FILE: B.kt
|
// FILE: B.kt
|
||||||
|
// LANGUAGE_VERSION: 1.2
|
||||||
|
|
||||||
import foo.*
|
import foo.*
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ fun f() = "OK"
|
|||||||
var v: Int = 1
|
var v: Int = 1
|
||||||
|
|
||||||
// FILE: B.kt
|
// FILE: B.kt
|
||||||
|
// LANGUAGE_VERSION: 1.2
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
v = 2
|
v = 2
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ fun f() = "OK"
|
|||||||
var v: Int = 1
|
var v: Int = 1
|
||||||
|
|
||||||
// FILE: B.kt
|
// FILE: B.kt
|
||||||
|
// LANGUAGE_VERSION: 1.2
|
||||||
|
|
||||||
import foo.*
|
import foo.*
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
package foo
|
||||||
|
|
||||||
|
fun file1() {}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
@file:Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
|
||||||
|
@file:JvmPackageName("j")
|
||||||
|
package foo
|
||||||
|
|
||||||
|
fun file2() {}
|
||||||
+2
@@ -0,0 +1,2 @@
|
|||||||
|
foo
|
||||||
|
foo/FooKt
|
||||||
@@ -86,4 +86,9 @@ class JvmPackageTableTest : KtUsefulTestCase() {
|
|||||||
doTest("/jvmPackageTable/jvmPackageNameManyParts",
|
doTest("/jvmPackageTable/jvmPackageNameManyParts",
|
||||||
compileWith = LanguageVersion.KOTLIN_1_2, loadWith = LanguageVersion.KOTLIN_1_2)
|
compileWith = LanguageVersion.KOTLIN_1_2, loadWith = LanguageVersion.KOTLIN_1_2)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun testJvmPackageNameLanguageVersion11() {
|
||||||
|
doTest("/jvmPackageTable/jvmPackageNameLanguageVersion11",
|
||||||
|
compileWith = LanguageVersion.KOTLIN_1_2, loadWith = LanguageVersion.KOTLIN_1_1)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ enum class LanguageFeature(
|
|||||||
LateinitLocalVariables(KOTLIN_1_2),
|
LateinitLocalVariables(KOTLIN_1_2),
|
||||||
InnerClassInEnumEntryClass(KOTLIN_1_2),
|
InnerClassInEnumEntryClass(KOTLIN_1_2),
|
||||||
CallableReferencesToClassMembersWithEmptyLHS(KOTLIN_1_2),
|
CallableReferencesToClassMembersWithEmptyLHS(KOTLIN_1_2),
|
||||||
|
JvmPackageName(KOTLIN_1_2),
|
||||||
|
|
||||||
RestrictionOfValReassignmentViaBackingField(KOTLIN_1_3),
|
RestrictionOfValReassignmentViaBackingField(KOTLIN_1_3),
|
||||||
NestedClassesInEnumEntryShouldBeInner(KOTLIN_1_3),
|
NestedClassesInEnumEntryShouldBeInner(KOTLIN_1_3),
|
||||||
|
|||||||
@@ -77,12 +77,14 @@ class ModuleMapping private constructor(val packageFqName2Parts: Map<String, Pac
|
|||||||
packageParts.addPart(internalNameOf(packageFqName, partShortName), facadeInternalName)
|
packageParts.addPart(internalNameOf(packageFqName, partShortName), facadeInternalName)
|
||||||
}
|
}
|
||||||
|
|
||||||
for ((index, partShortName) in proto.classWithJvmPackageNameShortNameList.withIndex()) {
|
if (configuration.isJvmPackageNameSupported) {
|
||||||
val packageId = proto.classWithJvmPackageNamePackageIdList.getOrNull(index)
|
for ((index, partShortName) in proto.classWithJvmPackageNameShortNameList.withIndex()) {
|
||||||
?: proto.classWithJvmPackageNamePackageIdList.lastOrNull()
|
val packageId = proto.classWithJvmPackageNamePackageIdList.getOrNull(index)
|
||||||
?: continue
|
?: proto.classWithJvmPackageNamePackageIdList.lastOrNull()
|
||||||
val jvmPackageName = table.jvmPackageNameList.getOrNull(packageId) ?: continue
|
?: continue
|
||||||
packageParts.addPart(internalNameOf(jvmPackageName, partShortName), null)
|
val jvmPackageName = table.jvmPackageNameList.getOrNull(packageId) ?: continue
|
||||||
|
packageParts.addPart(internalNameOf(jvmPackageName, partShortName), null)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
@@ -23,5 +23,8 @@ interface DeserializationConfiguration {
|
|||||||
val typeAliasesAllowed: Boolean
|
val typeAliasesAllowed: Boolean
|
||||||
get() = true
|
get() = true
|
||||||
|
|
||||||
|
val isJvmPackageNameSupported: Boolean
|
||||||
|
get() = true
|
||||||
|
|
||||||
object Default : DeserializationConfiguration
|
object Default : DeserializationConfiguration
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user