IJI-2602 make compilation error more clear

GitOrigin-RevId: 53b3555c9fb51dd8a918f2725a2c04a2bcde986d
This commit is contained in:
Vladimir Krivosheev
2025-05-14 18:42:47 +00:00
committed by intellij-monorepo-bot
parent f8c4479cde
commit ccaaa440ae
3 changed files with 13 additions and 2 deletions
-1
View File
@@ -99,7 +99,6 @@
"https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe",
"https://bcr.bazel.build/modules/rules_java/8.11.0/MODULE.bazel": "c3d280bc5ff1038dcb3bacb95d3f6b83da8dd27bba57820ec89ea4085da767ad",
"https://bcr.bazel.build/modules/rules_java/8.11.0/source.json": "302b52a39259a85aa06ca3addb9787864ca3e03b432a5f964ea68244397e7544",
"https://bcr.bazel.build/modules/rules_java/8.6.1/MODULE.bazel": "f4808e2ab5b0197f094cabce9f4b006a27766beb6a9975931da07099560ca9c2",
"https://bcr.bazel.build/modules/rules_java/8.7.1/MODULE.bazel": "123a57f84c7f80d6f66b0c2486db3460ed8c4389f788ccbd35bb489b1ab23634",
"https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7",
"https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909",
+12 -1
View File
@@ -27,7 +27,18 @@ internal class JavaAbiClassVisitor(
if (isApiClass) {
stripNonPublicMethods = !name.contains("android")
if (superName != null && superName != "java/lang/Object" && classesToBeDeleted.contains(superName)) {
abiErrorConsumer("Class ${formatClassName(name)} extends ${formatClassName(superName)} which is not public")
val subClass = formatClassName(name)
val parentClass = formatClassName(superName)
abiErrorConsumer("""
Class $subClass is public,
but it extends $parentClass, which is not public.
A public class must only extend classes that are accessible at the same visibility level.
To fix this, consider either:
* Reducing the visibility of $subClass, or
* Making $parentClass public (and annotate it with @ApiStatus.Internal if applicable).
""".trimIndent())
}
super.visit(version, access, name, signature, superName, interfaces)
}
@@ -23,6 +23,7 @@ enum class TestModules(@JvmField val sourcePaths: List<String>, private val para
LANG_IMPL(listOf("platform/lang-impl/src", "platform/lang-impl/gen"), "platform/lang-impl/lang-impl.jar-0.params"),
PLATFORM_BOOTSTRAP(listOf("platform/platform-impl/bootstrap/src"), "platform/platform-impl/bootstrap/ide-bootstrap.jar-0.params"),
DEVKIT_CORE(listOf("plugins/devkit/devkit-core/src", "plugins/devkit/devkit-core/gen"), "plugins/devkit/devkit-core/core.jar-0.params"),
JAVA_PSI_API(listOf("java/java-psi-api"), "java/java-psi-api/psi.jar-0.params"),
JEWEL(listOf("platform/jewel/foundation/src/main/kotlin"), "platform/jewel/foundation/foundation.jar-0.params"),
TEST_AM_B(listOf("testData/IJI-2602/b"), "testData/IJI-2602/b.jar-0.params"),