LV 2.0: drop reporting FIR_COMPILED_CLASS and relevant stuff

#KT-62056 Fixed
Related to KT-59171, KT-61951
This commit is contained in:
Mikhail Glukhikh
2023-09-15 18:04:57 +02:00
committed by Space Team
parent d4640cb576
commit a77b758efa
18 changed files with 13 additions and 93 deletions
@@ -29,8 +29,7 @@ object FirDiagnosticsCompilerResultsReporter {
AnalyzerWithCompilerReport.reportSpecialErrors(
diagnosticsCollector.diagnostics.any { it.factory == FirErrors.INCOMPATIBLE_CLASS },
diagnosticsCollector.diagnostics.any { it.factory == FirErrors.PRE_RELEASE_CLASS },
hasUnstableClasses = false, // TODO (KT-61598): report FIR_COMPILED_CLASS and IR_WITH_UNSTABLE_ABI_COMPILED_CLASS
hasFirUnstableClasses = false, // TODO (KT-61598): report FIR_COMPILED_CLASS and IR_WITH_UNSTABLE_ABI_COMPILED_CLASS
hasUnstableClasses = false, // TODO (KT-61598): report IR_WITH_UNSTABLE_ABI_COMPILED_CLASS
messageCollector,
)
}
@@ -185,7 +185,6 @@ class AnalyzerWithCompilerReport(
diagnostics.any { it.factory == Errors.INCOMPATIBLE_CLASS },
diagnostics.any { it.factory == Errors.PRE_RELEASE_CLASS },
diagnostics.any { it.factory == Errors.IR_WITH_UNSTABLE_ABI_COMPILED_CLASS },
diagnostics.any { it.factory == Errors.FIR_COMPILED_CLASS },
messageCollector,
)
}
@@ -195,7 +194,6 @@ class AnalyzerWithCompilerReport(
hasIncompatibleClasses: Boolean,
hasPrereleaseClasses: Boolean,
hasUnstableClasses: Boolean,
hasFirUnstableClasses: Boolean,
messageCollector: MessageCollector,
) {
if (hasIncompatibleClasses) {
@@ -222,14 +220,6 @@ class AnalyzerWithCompilerReport(
"Remove them from the classpath or use '-Xallow-unstable-dependencies' to suppress errors"
)
}
if (hasFirUnstableClasses) {
messageCollector.report(
ERROR,
"Classes compiled by the new Kotlin compiler frontend were found in dependencies. " +
"Remove them from the classpath or use '-Xallow-unstable-dependencies' to suppress errors"
)
}
}
fun reportSyntaxErrors(file: PsiElement, reporter: DiagnosticMessageReporter): SyntaxErrorReport {
@@ -44,7 +44,6 @@ class FirJvmBackendExtension(
companion object {
fun generateMetadataExtraFlags(abiStability: JvmAbiStability?): Int =
JvmAnnotationNames.METADATA_JVM_IR_FLAG or
JvmAnnotationNames.METADATA_FIR_FLAG or
(if (abiStability == JvmAbiStability.STABLE) JvmAnnotationNames.METADATA_JVM_IR_STABLE_ABI_FLAG else 0)
(if (abiStability != JvmAbiStability.UNSTABLE) JvmAnnotationNames.METADATA_JVM_IR_STABLE_ABI_FLAG else 0)
}
}
@@ -136,7 +136,6 @@ class JvmClassFileBasedSymbolProvider(
private val KotlinJvmBinaryClass.abiStability: DeserializedContainerAbiStability
get() = when {
session.languageVersionSettings.getFlag(AnalysisFlags.allowUnstableDependencies) -> DeserializedContainerAbiStability.STABLE
classHeader.isUnstableFirBinary -> DeserializedContainerAbiStability.FIR_UNSTABLE
classHeader.isUnstableJvmIrBinary -> DeserializedContainerAbiStability.IR_UNSTABLE
else -> DeserializedContainerAbiStability.STABLE
}
@@ -59,9 +59,6 @@ object MissingDependencyClassChecker : CallChecker {
if (source.isPreReleaseInvisible) {
return PRE_RELEASE_CLASS.on(reportOn, source.presentableString)
}
if (source.abiStability == DeserializedContainerAbiStability.FIR_UNSTABLE) {
return FIR_COMPILED_CLASS.on(reportOn, source.presentableString)
}
if (source.abiStability == DeserializedContainerAbiStability.IR_UNSTABLE) {
return IR_WITH_UNSTABLE_ABI_COMPILED_CLASS.on(reportOn, source.presentableString)
}
@@ -1 +0,0 @@
OK
@@ -1,8 +1 @@
error: classes compiled by the new Kotlin compiler frontend were found in dependencies. Remove them from the classpath or use '-Xallow-unstable-dependencies' to suppress errors
compiler/testData/compileKotlinAgainstCustomBinaries/againstFir/source.kt:4:5: error: class 'lib.AKt' is compiled by the new Kotlin compiler frontend and cannot be loaded by the old compiler
get { Box("OK").value }
^
compiler/testData/compileKotlinAgainstCustomBinaries/againstFir/source.kt:4:11: error: class 'lib.Box' is compiled by the new Kotlin compiler frontend and cannot be loaded by the old compiler
get { Box("OK").value }
^
COMPILATION_ERROR
OK
@@ -1,8 +1,8 @@
error: classes compiled by the new Kotlin compiler frontend were found in dependencies. Remove them from the classpath or use '-Xallow-unstable-dependencies' to suppress errors
compiler/testData/compileKotlinAgainstCustomBinaries/againstFirWithUnstableAbi/source.kt:4:5: error: class 'lib.AKt' is compiled by the new Kotlin compiler frontend and cannot be loaded by the old compiler
error: classes compiled by an unstable version of the Kotlin compiler were found in dependencies. Remove them from the classpath or use '-Xallow-unstable-dependencies' to suppress errors
compiler/testData/compileKotlinAgainstCustomBinaries/againstFirWithUnstableAbi/source.kt:4:5: error: class 'lib.AKt' is compiled by an unstable version of the Kotlin compiler and cannot be loaded by this compiler
get { Box("OK").value }
^
compiler/testData/compileKotlinAgainstCustomBinaries/againstFirWithUnstableAbi/source.kt:4:11: error: class 'lib.Box' is compiled by the new Kotlin compiler frontend and cannot be loaded by the old compiler
compiler/testData/compileKotlinAgainstCustomBinaries/againstFirWithUnstableAbi/source.kt:4:11: error: class 'lib.Box' is compiled by an unstable version of the Kotlin compiler and cannot be loaded by this compiler
get { Box("OK").value }
^
COMPILATION_ERROR
@@ -1,26 +1 @@
error: classes compiled by the new Kotlin compiler frontend were found in dependencies. Remove them from the classpath or use '-Xallow-unstable-dependencies' to suppress errors
compiler/testData/compileKotlinAgainstCustomBinaries/releaseCompilerAgainstPreReleaseLibrarySkipMetadataVersionCheck/source.kt:6:16: error: class 'a.A' is compiled by the new Kotlin compiler frontend and cannot be loaded by the old compiler
fun baz(param: A) {
^
compiler/testData/compileKotlinAgainstCustomBinaries/releaseCompilerAgainstPreReleaseLibrarySkipMetadataVersionCheck/source.kt:7:23: error: class 'a.A' is compiled by the new Kotlin compiler frontend and cannot be loaded by the old compiler
val constructor = A()
^
compiler/testData/compileKotlinAgainstCustomBinaries/releaseCompilerAgainstPreReleaseLibrarySkipMetadataVersionCheck/source.kt:8:22: error: class 'a.A' is compiled by the new Kotlin compiler frontend and cannot be loaded by the old compiler
val methodCall = param.hashCode()
^
compiler/testData/compileKotlinAgainstCustomBinaries/releaseCompilerAgainstPreReleaseLibrarySkipMetadataVersionCheck/source.kt:9:30: error: class 'a.A' is compiled by the new Kotlin compiler frontend and cannot be loaded by the old compiler
val supertype = object : A() {}
^
compiler/testData/compileKotlinAgainstCustomBinaries/releaseCompilerAgainstPreReleaseLibrarySkipMetadataVersionCheck/source.kt:11:13: error: class 'a.AKt' is compiled by the new Kotlin compiler frontend and cannot be loaded by the old compiler
val x = foo()
^
compiler/testData/compileKotlinAgainstCustomBinaries/releaseCompilerAgainstPreReleaseLibrarySkipMetadataVersionCheck/source.kt:12:13: error: class 'a.AKt' is compiled by the new Kotlin compiler frontend and cannot be loaded by the old compiler
val y = bar
^
compiler/testData/compileKotlinAgainstCustomBinaries/releaseCompilerAgainstPreReleaseLibrarySkipMetadataVersionCheck/source.kt:13:5: error: class 'a.AKt' is compiled by the new Kotlin compiler frontend and cannot be loaded by the old compiler
bar = 239
^
compiler/testData/compileKotlinAgainstCustomBinaries/releaseCompilerAgainstPreReleaseLibrarySkipMetadataVersionCheck/source.kt:14:12: error: class 'a.AKt' is compiled by the new Kotlin compiler frontend and cannot be loaded by the old compiler
val z: TA = ""
^
COMPILATION_ERROR
OK
@@ -1,26 +1 @@
error: classes compiled by the new Kotlin compiler frontend were found in dependencies. Remove them from the classpath or use '-Xallow-unstable-dependencies' to suppress errors
compiler/testData/compileKotlinAgainstCustomBinaries/releaseCompilerAgainstPreReleaseLibrarySkipPrereleaseCheck/source.kt:6:16: error: class 'a.A' is compiled by the new Kotlin compiler frontend and cannot be loaded by the old compiler
fun baz(param: A) {
^
compiler/testData/compileKotlinAgainstCustomBinaries/releaseCompilerAgainstPreReleaseLibrarySkipPrereleaseCheck/source.kt:7:23: error: class 'a.A' is compiled by the new Kotlin compiler frontend and cannot be loaded by the old compiler
val constructor = A()
^
compiler/testData/compileKotlinAgainstCustomBinaries/releaseCompilerAgainstPreReleaseLibrarySkipPrereleaseCheck/source.kt:8:22: error: class 'a.A' is compiled by the new Kotlin compiler frontend and cannot be loaded by the old compiler
val methodCall = param.hashCode()
^
compiler/testData/compileKotlinAgainstCustomBinaries/releaseCompilerAgainstPreReleaseLibrarySkipPrereleaseCheck/source.kt:9:30: error: class 'a.A' is compiled by the new Kotlin compiler frontend and cannot be loaded by the old compiler
val supertype = object : A() {}
^
compiler/testData/compileKotlinAgainstCustomBinaries/releaseCompilerAgainstPreReleaseLibrarySkipPrereleaseCheck/source.kt:11:13: error: class 'a.AKt' is compiled by the new Kotlin compiler frontend and cannot be loaded by the old compiler
val x = foo()
^
compiler/testData/compileKotlinAgainstCustomBinaries/releaseCompilerAgainstPreReleaseLibrarySkipPrereleaseCheck/source.kt:12:13: error: class 'a.AKt' is compiled by the new Kotlin compiler frontend and cannot be loaded by the old compiler
val y = bar
^
compiler/testData/compileKotlinAgainstCustomBinaries/releaseCompilerAgainstPreReleaseLibrarySkipPrereleaseCheck/source.kt:13:5: error: class 'a.AKt' is compiled by the new Kotlin compiler frontend and cannot be loaded by the old compiler
bar = 239
^
compiler/testData/compileKotlinAgainstCustomBinaries/releaseCompilerAgainstPreReleaseLibrarySkipPrereleaseCheck/source.kt:14:12: error: class 'a.AKt' is compiled by the new Kotlin compiler frontend and cannot be loaded by the old compiler
val z: TA = ""
^
COMPILATION_ERROR
OK