Class NullnessTransfer

All Implemented Interfaces:
ForwardTransferFunction<NullnessValue,NullnessStore>, TransferFunction<NullnessValue,NullnessStore>, NodeVisitor<TransferResult<NullnessValue,NullnessStore>,TransferInput<NullnessValue,NullnessStore>>

Transfer function for the non-null type system. Performs the following refinements:
  1. After an expression is compared with the null literal, then that expression can safely be considered NonNull if the result of the comparison is false or Nullable if the result is true.
  2. If an expression is dereferenced, then it can safely be assumed to non-null in the future. If it would not be, then the dereference would have raised a NullPointerException.
  3. Tracks whether PolyNull is known to be NonNull or Nullable (or not known to be either).