-
Notifications
You must be signed in to change notification settings - Fork 1.2k
IFilter implementations should be package-private and final #1806
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IFilter implementations should be package-private and final #1806
Conversation
09fa0d1 to
fda454b
Compare
|
👍 For cleaning-up package visibility! A remark regarding method
Both could be addressed by creating a separate Group for the Kotlin filters. It also eliminates the repeated |
So IMO the absence of this check in them is not a problem. We can add it, but IMO such a change should not be made within this PR.
I agree that factoring out repeated But unfortunately this will not remove all cycles - it is also used in There are also filters which are likely not applicable for Kotlin - for example @marchof All in all, I think that the scope of this PR should not be extended above its current title - change of visibility of classes (see "Clear scope" in org.jacoco.doc/docroot/doc/conventions.html), and I think that it should not be blocked and should not wait for all the above, ie IMO factorization of |
|
@Godin Ok, let's focus on the class visibility in this PR and discuss |
|
@marchof ok and so where this PR should place
|
|
@Godin Ah I see, due to visibility issues we need to move it 😅 So let's go with your initial proposal and keep it in |
This reverts commit 4d0560f.
|
@Godin Thanks! Let me propose a follow-up for the filter code organization. |
Currently visibility of
IFilterimplementations is inconsistent:package-private
finalAssertFilterBridgeFilterExhaustiveSwitchFilterKotlinComposeFilterKotlinDefaultMethodsFilterKotlinEnumFilterKotlinInlineClassFilterRecordPatternFilterpublicnon-finalKotlinGeneratedFilterKotlinLateinitFilterall others are
public final.I propose to make them all, except
Filters, consistently package-private andfinal.IMO design-wise they should have been such since the beginning.
This will also fix a good amount of javadoc doclint warnings
which appear when building with JDK versions starting from 18.