In a final class, a visibility change of a constructor from protected to private is detected as CONSTRUCTOR_LESS_ACCESSIBLE:
Comparing binary compatibility of assertj-core-3.22.1-SNAPSHOT.jar against assertj-core-3.22.0.jar
***! MODIFIED CLASS: PUBLIC FINAL org.assertj.core.api.Fail (not serializable)
=== CLASS FILE FORMAT VERSION: 52.0 <- 52.0
***! MODIFIED CONSTRUCTOR: PRIVATE (<- PROTECTED) Fail()
Although it's a proper detection considering only the constructor visibility, I am wondering if this could be correlated with the fact that the class is final and there is no way it can be extended, so it shouldn't be an incompatible change.
In a
final
class, a visibility change of a constructor fromprotected
toprivate
is detected asCONSTRUCTOR_LESS_ACCESSIBLE
:Although it's a proper detection considering only the constructor visibility, I am wondering if this could be correlated with the fact that the class is
final
and there is no way it can be extended, so it shouldn't be an incompatible change.