K2: support -Xskip-metadata-version-check
#KT-60795
This commit is contained in:
committed by
Space Team
parent
7d60b5df43
commit
8f720ad24b
+7
-2
@@ -5,13 +5,17 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.fir.java.deserialization
|
package org.jetbrains.kotlin.fir.java.deserialization
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.config.AnalysisFlags
|
||||||
import org.jetbrains.kotlin.descriptors.SourceElement
|
import org.jetbrains.kotlin.descriptors.SourceElement
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.ThreadSafeMutableState
|
import org.jetbrains.kotlin.fir.ThreadSafeMutableState
|
||||||
import org.jetbrains.kotlin.fir.builder.toMutableOrEmpty
|
import org.jetbrains.kotlin.fir.builder.toMutableOrEmpty
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||||
import org.jetbrains.kotlin.fir.declarations.getDeprecationsProvider
|
import org.jetbrains.kotlin.fir.declarations.getDeprecationsProvider
|
||||||
import org.jetbrains.kotlin.fir.deserialization.*
|
import org.jetbrains.kotlin.fir.deserialization.AbstractFirDeserializedSymbolProvider
|
||||||
|
import org.jetbrains.kotlin.fir.deserialization.FirDeserializationContext
|
||||||
|
import org.jetbrains.kotlin.fir.deserialization.ModuleDataProvider
|
||||||
|
import org.jetbrains.kotlin.fir.deserialization.PackagePartsCacheData
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
|
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
|
||||||
import org.jetbrains.kotlin.fir.java.FirJavaFacade
|
import org.jetbrains.kotlin.fir.java.FirJavaFacade
|
||||||
import org.jetbrains.kotlin.fir.java.declarations.FirJavaClass
|
import org.jetbrains.kotlin.fir.java.declarations.FirJavaClass
|
||||||
@@ -101,7 +105,8 @@ class JvmClassFileBasedSymbolProvider(
|
|||||||
|
|
||||||
private val KotlinJvmBinaryClass.incompatibility: IncompatibleVersionErrorData<JvmMetadataVersion>?
|
private val KotlinJvmBinaryClass.incompatibility: IncompatibleVersionErrorData<JvmMetadataVersion>?
|
||||||
get() {
|
get() {
|
||||||
// TODO: skipMetadataVersionCheck
|
if (session.languageVersionSettings.getFlag(AnalysisFlags.skipMetadataVersionCheck)) return null
|
||||||
|
|
||||||
if (classHeader.metadataVersion.isCompatible(ownMetadataVersion)) return null
|
if (classHeader.metadataVersion.isCompatible(ownMetadataVersion)) return null
|
||||||
return IncompatibleVersionErrorData(
|
return IncompatibleVersionErrorData(
|
||||||
actualVersion = classHeader.metadataVersion,
|
actualVersion = classHeader.metadataVersion,
|
||||||
|
|||||||
+1
-2
@@ -306,8 +306,7 @@ abstract class AbstractCompileKotlinAgainstCustomBinariesTest : AbstractKotlinCo
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// KT-60795 K2: missing INCOMPATIBLE_CLASS and corresponding CLI error
|
fun testWrongMetadataVersionSkipVersionCheck() {
|
||||||
fun testWrongMetadataVersionSkipVersionCheck() = muteForK2 {
|
|
||||||
doTestKotlinLibraryWithWrongMetadataVersion("library", null, "-Xskip-metadata-version-check")
|
doTestKotlinLibraryWithWrongMetadataVersion("library", null, "-Xskip-metadata-version-check")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user