Comments (3)
I don't think the RI should provide extensions to the Java language model, implement ways to query for a type, etc.
Two things can be enforced:
- All annotations are used in meaningful ways, e.g. forbid
@Nullable @NotNull
and any annotation on primitives. Enforce TYPE_USE restrictions listed in Issue #17. TODO: produce full list of these consistency checks. - Behavioral subtyping, that is, annotations on an override are consistent with the super method.
In particular, we should refrain from prescribing when nullness errors should be raised in expressions. Different static analysis tools will provide additional refinement, e.g. pre-condition annotations, that refine a field that is declared nullable to be not-null.
We should also not guarantee that all dereferences of something @NotNull
will be allowed - e.g. the Checker Framework provides fine-grained initialization checking that makes sure uninitialized fields aren't used. This will result in errors for uses of a not-null field.
from jspecify.
Narrow works for us.
from jspecify.
By #92 there won't be an RI.
from jspecify.
Related Issues (20)
- Relationship of nullness findings to java unchecked warnings HOT 1
- AtomicReference.compareAndSet: `(V?, V%)` or `(V%, V%)`? HOT 4
- Javadoc "Why?" links don't appear to include the section header HOT 1
- Standard set of declaration-annotation equivalents to `@Nullable` and `@NonNull` [working decision: no] HOT 1
- Weird behavior Javadoc link HOT 5
- `Optional`: `T orElseGet(Supplier<T>)` or `@Nullable T orElseGet(Supplier<@Nullable T>)`? HOT 1
- Rename artifact id and module name HOT 8
- What about lazy initialization/setters HOT 3
- Conformance test zip is empy after `assemble`.
- Strangeness with generics and callbacks. HOT 7
- User Guide: Type-use annotation syntax for full qualified names HOT 1
- Generalized contract language expressed in a single `@Contract("...")` annotation, like IntelliJ supports HOT 4
- Document intended pre-1.0 releases, including release candidates
- Write 1.0 release announcement HOT 1
- Documentation for code authors
- Finalize all workingly-decided specification issues affecting 1.0 HOT 1
- Guava has documented their plan for releasing with JSpecify annotations HOT 3
- No access to Java-concepts glossary HOT 2
- How to annotate `Collection.toArray(T[])` HOT 2
- Move module-info back to the main root? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jspecify.