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 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()
|
||||
|
||||
// FILE: B.kt
|
||||
// LANGUAGE_VERSION: 1.2
|
||||
|
||||
import foo.*
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ fun f() = "OK"
|
||||
var v: Int = 1
|
||||
|
||||
// FILE: B.kt
|
||||
// LANGUAGE_VERSION: 1.2
|
||||
|
||||
fun box(): String {
|
||||
v = 2
|
||||
|
||||
@@ -12,6 +12,7 @@ fun f() = "OK"
|
||||
var v: Int = 1
|
||||
|
||||
// FILE: B.kt
|
||||
// LANGUAGE_VERSION: 1.2
|
||||
|
||||
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",
|
||||
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),
|
||||
InnerClassInEnumEntryClass(KOTLIN_1_2),
|
||||
CallableReferencesToClassMembersWithEmptyLHS(KOTLIN_1_2),
|
||||
JvmPackageName(KOTLIN_1_2),
|
||||
|
||||
RestrictionOfValReassignmentViaBackingField(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)
|
||||
}
|
||||
|
||||
for ((index, partShortName) in proto.classWithJvmPackageNameShortNameList.withIndex()) {
|
||||
val packageId = proto.classWithJvmPackageNamePackageIdList.getOrNull(index)
|
||||
?: proto.classWithJvmPackageNamePackageIdList.lastOrNull()
|
||||
?: continue
|
||||
val jvmPackageName = table.jvmPackageNameList.getOrNull(packageId) ?: continue
|
||||
packageParts.addPart(internalNameOf(jvmPackageName, partShortName), null)
|
||||
if (configuration.isJvmPackageNameSupported) {
|
||||
for ((index, partShortName) in proto.classWithJvmPackageNameShortNameList.withIndex()) {
|
||||
val packageId = proto.classWithJvmPackageNamePackageIdList.getOrNull(index)
|
||||
?: proto.classWithJvmPackageNamePackageIdList.lastOrNull()
|
||||
?: continue
|
||||
val jvmPackageName = table.jvmPackageNameList.getOrNull(packageId) ?: continue
|
||||
packageParts.addPart(internalNameOf(jvmPackageName, partShortName), null)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+3
@@ -23,5 +23,8 @@ interface DeserializationConfiguration {
|
||||
val typeAliasesAllowed: Boolean
|
||||
get() = true
|
||||
|
||||
val isJvmPackageNameSupported: Boolean
|
||||
get() = true
|
||||
|
||||
object Default : DeserializationConfiguration
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user