[CLI] Introduce compiler argument to suppress error about API version

...greater than language version.

^KT-63712
This commit is contained in:
Roman Efremov
2024-02-08 15:59:43 +01:00
committed by Space Team
parent 22a6ffab6f
commit 1f30d076de
10 changed files with 62 additions and 4 deletions
@@ -70,6 +70,7 @@ fun copyCommonCompilerArguments(from: CommonCompilerArguments, to: CommonCompile
to.selfUpperBoundInference = from.selfUpperBoundInference
to.skipMetadataVersionCheck = from.skipMetadataVersionCheck
to.skipPrereleaseCheck = from.skipPrereleaseCheck
to.suppressApiVersionGreaterThanLanguageVersionError = from.suppressApiVersionGreaterThanLanguageVersionError
to.suppressVersionWarnings = from.suppressVersionWarnings
to.unrestrictedBuilderInference = from.unrestrictedBuilderInference
to.useExperimental = from.useExperimental?.copyOf()
@@ -562,6 +562,18 @@ Use the 'warning' level to issue warnings instead of errors."""
field = value
}
// TODO(KT-56076): remove this argument after stdlib started to be built with 2.0
@Argument(
value = "-Xsuppress-api-version-greater-than-language-version-error",
description = "Suppress error about API version greater than language version.\n" +
"Warning: This is temporary solution (see KT-63712) intended to be used only for stdlib build."
)
var suppressApiVersionGreaterThanLanguageVersionError: Boolean = false
set(value) {
checkFrozen()
field = value
}
@Argument(
value = "-Xextended-compiler-checks",
description = """Enable additional compiler checks that might provide verbose diagnostic information for certain errors.
@@ -911,10 +923,14 @@ The corresponding calls' declarations may not be marked with @BuilderInference."
collector: MessageCollector
) {
if (apiVersion > ApiVersion.createByLanguageVersion(languageVersion)) {
collector.report(
CompilerMessageSeverity.ERROR,
"-api-version (${apiVersion.versionString}) cannot be greater than -language-version (${languageVersion.versionString})"
)
if (!suppressApiVersionGreaterThanLanguageVersionError) {
collector.report(
CompilerMessageSeverity.ERROR,
"-api-version (${apiVersion.versionString}) cannot be greater than -language-version (${languageVersion.versionString})"
)
}
} else if (suppressApiVersionGreaterThanLanguageVersionError) {
collector.report(WARNING, "Useless suppress -Xsuppress-api-version-greater-than-language-version-error")
}
}