Skip to content
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

Request for feedback: checker for required method calls on builders #851

Open
msridhar opened this issue May 19, 2020 · 1 comment
Open
Labels
Component: value P4 type=other Miscellaneous activities not covered by other type= labels

Comments

@msridhar
Copy link

msridhar commented May 19, 2020

Dear AutoValue developers,

We would like your feedback on a static analysis tool that prevents errors in AutoValue clients by guaranteeing that required methods are always called on AutoValue Builders. The required methods are those that set a property that is not @Nullable, Optional, or a Guava Immutable Collection. We have run the checker on some projects that use AutoValue, and discovered a real bug:

googleapis/gapic-generator#2892

You can read more about the checker in its README:

https://github.com/kelloggm/object-construction-checker

and in a soon-to-be-published research paper:

https://homes.cs.washington.edu/~kelloggm/papers/ICSE2020-camera-ready.pdf

Here is a sample project showing the checker in action for some sample AutoValue code:

https://github.com/msridhar/obj-cons-autovalue-example

We would be very happy to get your feedback on this checker. If you think it is of value, we would like to have the checker publicized to AutoValue users. Thanks!

@cgdecker cgdecker added Component: value P4 type=other Miscellaneous activities not covered by other type= labels labels May 26, 2020
@msridhar
Copy link
Author

Hello, just a ping on this issue. Any feedback would still be most welcome, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component: value P4 type=other Miscellaneous activities not covered by other type= labels
Projects
None yet
Development

No branches or pull requests

3 participants