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
Non-public markers aren't handled correctly for properties #36
Comments
Thanks for the report, this is indeed a bug in binary compatibility validator. PRs are welcome, for the reference we got a pretty similar issue with |
Another issue is that if
That makes it harder to workaround the issue because "Opt-in" markers are typically the kind of annotation that are nice to hide. |
Unfortunately, we're overwhelmed with other work right now, so we can't provide ETA for the fix. |
Tentative PR there: #81. It pulls all the property/field annotations on getters/setters, which I think is what we want? |
Merged into master, will be fixed in the next release |
There were two problems in BCV fixed: - Kotlin/binary-compatibility-validator#36 - Kotlin/binary-compatibility-validator#58 Therefore some methods with default values and properties that mistakenly wasn't included in the dump, now have appeared in it.
There were two problems in BCV fixed: - Kotlin/binary-compatibility-validator#36 - Kotlin/binary-compatibility-validator#58 Therefore some methods with default values and properties that mistakenly wasn't included in the dump, now have appeared in it.
There were two problems in BCV fixed: - Kotlin/binary-compatibility-validator#36 - Kotlin/binary-compatibility-validator#58 Therefore some methods with default values and properties that mistakenly wasn't included in the dump, now have appeared in it.
When declaring an opt-in annotation and adding that annotation to the
nonPublicMarkers
configuration, properties that have the annotation present are not correctly excluded from the api dump.Example annotation:
A function like this will not show up in the dump (correctly):
However, this property will:
... in the form of a getter and a setter:
A workaround that removes these from the API dump is annotating the getter and setter directly, like so:
However, annotating the getter like that doesn't trigger warnings at the call site of the property, so you really need three annotations on each property to satisfy both the plugin and inspections:
Project with examples and reproducing the issue can be found here.
The text was updated successfully, but these errors were encountered: