- assigned field: The path being dereferenced is a field which is assigned a non-null value beforehand, but gradual doesn't update field lattice values.
- asserted variable: The variable was previously asserted to be non-null.
- checked call: The return value of a probably-referentially-transparent call is checked before usage.
- checked field: The path being dereferenced is a field which is checked for null beforehand, but gradual doesn't update field lattice values.
- checked instanceof: The code checks the variable beforehand using
instanceof
, which prevents a null dereference. - complicated check: The variable is safe, but for complicated control-flow reasons.
- eradicate override: Eradicate seems to give lots of false positives about annotations in overrides, so I'm gonna start ignoring these.
- eradicate parameter: Eradicate seems to give tons of false positives about passing parameters so I'm just gonna start ignoring these.
- eradicate test: Eradicate seems to give tons of false positives in tests so I'm just gonna start ignoring these.
- fine inconsistent annotation: An overridden annotation is marked as inconsistent, but it isn't used in an unsafe way.
- generated code: A warning in non-source code.
- initialized elsewhere: The two fields aren't initialized in a constructor,
but there is a specially marked
@Before
method that initializes them. - missing annotation: A field is checked for null, or a method returns null,
so nullsafe insists that it be annotated as
@Nullable
. - phantom code: Warning about some code that's not there.
- safe return: Warning about a non-null return value.
- unstrict field: A field that allows null is appraised as non-null.
- unstrict parameter: A parameter that allows null is appraised as non-null.
- unstrict return: A return value that allows null is appraised as non-null (e.g. for overriding).
- unchecked field: The field is marked as
@Nullable
and not checked. - unchecked call: The return value of a call is marked as
@Nullable
and not checked.