Use "-Xskip-metadata-version-check" to load pre-release classes

This commit is contained in:
Alexander Udalov
2016-12-06 19:54:36 +03:00
parent 7de0cfde16
commit d204fa91cc
7 changed files with 42 additions and 5 deletions
@@ -95,7 +95,7 @@ public class K2JVMCompilerArguments extends CommonCompilerArguments {
@Argument(value = "Xallow-kotlin-package", description = "Allow compiling code in package 'kotlin'")
public boolean allowKotlinPackage;
@Argument(value = "Xskip-metadata-version-check", description = "Try loading binary incompatible classes, may cause crashes")
@Argument(value = "Xskip-metadata-version-check", description = "Load classes with bad metadata version anyway (incl. pre-release classes)")
public boolean skipMetadataVersionCheck;
@Argument(value = "Xdump-declarations-to", description = "Path to JSON file to dump Java to Kotlin declaration mappings")
@@ -39,6 +39,7 @@ import org.jetbrains.kotlin.compiler.plugin.cliPluginUsageString
import org.jetbrains.kotlin.config.*
import org.jetbrains.kotlin.incremental.components.SourceRetentionAnnotationHandler
import org.jetbrains.kotlin.load.java.JvmAbi
import org.jetbrains.kotlin.load.kotlin.DeserializedDescriptorResolver
import org.jetbrains.kotlin.load.kotlin.JvmMetadataVersion
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCompilationComponents
import org.jetbrains.kotlin.script.KotlinScriptDefinitionFromAnnotatedTemplate
@@ -115,8 +116,10 @@ class K2JVMCompiler : CLICompiler<K2JVMCompilerArguments>() {
return ExitCode.OK
}
if (arguments.skipMetadataVersionCheck) {
if (arguments.skipMetadataVersionCheck) {
JvmMetadataVersion.skipCheck = true
@Suppress("DEPRECATION")
DeserializedDescriptorResolver.IS_PRE_RELEASE = true
}
if (arguments.includeRuntime) {