### Error messages for the Nullness Checker

# Dereferencing a possibly-null reference
dereference.of.nullable=dereference of possibly-null reference %s
iterating.over.nullable=iterating over possibly-null reference %s
unboxing.of.nullable=unboxing a possibly-null reference %s
throwing.nullable=throwing a possibly-null throwable %s
locking.nullable=synchronizing over a possibly-null lock %s
accessing.nullable=accessing a possibly-null array %s
condition.nullable=condition on a possibly-null value %s
switching.nullable=switching on a possibly-null value %s

# Messages for special-cased methods
toarray.nullable.elements.not.newarray=call of toArray on collection of non-null elements yields an array of possibly-null elements; omit the argument to toArray or make it an explicit array constructor
toarray.nullable.elements.mismatched.size=call of toArray on collection of non-null elements yields an array of possibly-null elements; cannot determine that the argument array has the same size as the receiver collection
clear.system.property=call might clear a predefined system property; pass -Alint=permitClearProperty to permit it

# Unnecessary operations
nulltest.redundant=redundant test against null; "%s" is non-null

# Annotations that are invalid or unnecessary
instanceof.nullable=instanceof is only true for a non-null expression
instanceof.nonnull.redundant=redundant @NonNull annotation on instanceof
new.array=annotations %s may not be applied as component type for array "%s"
new.class=the annotations %s do not need be applied in object creations
nullness.on.constructor=do not write nullness annotations on a constructor, whose result is always non-null
nullness.on.enum=do not write nullness annotations on an enum constant, which is always non-null
nullness.on.exception.parameter=do not write nullness annotations on an exception parameter, which is always non-null
nullness.on.outer=nullness annotations are not applicable to outer types
nullness.on.primitive=nullness annotations are not applicable to primitive types
nullness.on.receiver=do not write nullness annotations on the receiver formal parameter `this`, which is always non-null
nullness.on.supertype=do not write nullness annotations on supertypes in a class declaration
