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

Wrapper libraries (release and/or support and/or evangelize) #220

Open
kevinb9n opened this issue Nov 11, 2021 · 1 comment
Open

Wrapper libraries (release and/or support and/or evangelize) #220

kevinb9n opened this issue Nov 11, 2021 · 1 comment
Labels
design An issue that is resolved by making a decision, about whether and how something should work. new-feature Adding something entirely new for users, not improving what's there nullness For issues specific to nullness analysis.
Milestone

Comments

@kevinb9n
Copy link
Collaborator

kevinb9n commented Nov 11, 2021

A variety of APIs read annotations from program elements: reflection, the javac API, etc.

JSpecify-aware wrapper libraries for these could do a lot to further JSpecify's goals. Essentially, wherever our specifications define that scenarios X and Y are isomorphic, we'd like APIs that make X and Y indistinguishable. Examples:

Of course this has nothing to do with preventing anyone from querying at the lower level / more literally. (For example you'd need to do this to report that one of our annotations was used redundantly.)

These would help people adopt our specs and overall lead to more spec-compliance in the world. I also like that the mere existence of these libraries gives users some very simple and concrete ways to understand what our annotations even mean.

(This issue should eventually be split up.)

@kevinb9n kevinb9n added this to the Post-1.0 milestone Nov 11, 2021
@jbduncan
Copy link
Collaborator

I like the sound of this! It reminds me of how JUnit 5 has APIs that third-party JUnit extensions can use to make writing extensions easier, like finding annotations easily.

@kevinb9n kevinb9n modified the milestones: Post-1.0, 1.0 Sep 20, 2022
@kevinb9n kevinb9n added nullness For issues specific to nullness analysis. design An issue that is resolved by making a decision, about whether and how something should work. labels Nov 29, 2022
@netdpb netdpb modified the milestones: 1.0, Post-1.0 Jan 24, 2024
@kevinb9n kevinb9n added the new-feature Adding something entirely new for users, not improving what's there label Mar 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
design An issue that is resolved by making a decision, about whether and how something should work. new-feature Adding something entirely new for users, not improving what's there nullness For issues specific to nullness analysis.
Projects
None yet
Development

No branches or pull requests

3 participants