docs: private void checkForUnconditionallyDereferencedNullValues(Location thisLocation,
              Map<ValueNumber, SortedSet<Location>> knownNullAndDoomedAt,
              Map<ValueNumber, NullValueUnconditionalDeref> nullValueGuaranteedDerefMap, ValueNumberFrame vnaFrame,
              IsNullValueFrame invFrame, UnconditionalValueDerefSet derefSet, boolean isEdge) {
  
          if (DEBUG_DEREFS) {
              System.out.println("vna *** " + vnaFrame);
              System.out.println("inv *** " + invFrame);
              System.out.println("deref * " + derefSet);
          }
  
          // Make sure the frames contain meaningful information
          if (!vnaFrame.isValid() || !invFrame.isValid()  || vnaFrame.getNumLocals() != invFrame.getNumLocals()
                  || derefSet.isEmpty()) {
              return;
          }
  
          int slots;
          if (vnaFrame.getNumSlots() == invFrame.getNumSlots()) {
              slots = vnaFrame.getNumSlots();
          } else {
              slots = vnaFrame.getNumLocals();
              /*
          if (false) {
              InstructionHandle handle = thisLocation.getHandle();
              if (handle != null && handle.getInstruction() instanceof NullnessConversationInstruction) {
                  try {
                      IsNullValue isNullValue = invFrame.getStackValue(0);
                      ValueNumber valueNumber = vnaFrame.getStackValue(0);
                      if (!isNullValue.isDefinitelyNotNull() && !isNullValue.isDefinitelyNull() && derefSet.isUnconditionallyDereferenced(valueNumber)) {
                          Location where = thisLocation;
                          SortedSet<Location> doomedAt = knownNullAndDoomedAt.get(valueNumber);
                          if (doomedAt == null)
                              knownNullAndDoomedAt.put(valueNumber, doomedAt = new TreeSet<Location>());
                          doomedAt.add(thisLocation);
                          NullValueUnconditionalDeref nullValueUnconditionalDeref = nullValueGuaranteedDerefMap.get(valueNumber);
                          if (nullValueUnconditionalDeref != null) {
                              Set<Location> derefLocationSet = nullValueUnconditionalDeref.getDerefLocationSet();
                              if (derefLocationSet.size() == 1)
                                  where = derefLocationSet.iterator().next();
                          }
                          noteUnconditionallyDereferencedNullValue(where, knownNullAndDoomedAt, nullValueGuaranteedDerefMap, derefSet,
                                  isNullValue, valueNumber);
                      }
                  } catch (DataflowAnalysisException e) {
                      AnalysisContext.logError("huh", e);
                  }
              }
          }
               */
          }
  
          // See if there are any definitely-null values in the frame
          for (int j = 0; j < slots; j++) {
              IsNullValue isNullValue = invFrame.getValue(j);
              ValueNumber valueNumber = vnaFrame.getValue(j);
              if ((isNullValue.isDefinitelyNull() || isNullValue.isNullOnSomePath() && isNullValue.isReturnValue())
                      && (derefSet.isUnconditionallyDereferenced(valueNumber))) {
                  if (MY_DEBUG) {
                      System.out.println("Found NP bug");
                      System.out.println("Location: " + thisLocation);
                      System.out.println("Value number frame: " + vnaFrame);
                      System.out.println("Value number: " + valueNumber);
                      System.out.println("IsNullValue frame: " + invFrame);
                      System.out.println("IsNullValue value: " + isNullValue);
                      System.out.println("Unconditional dere framef: " + derefSet);
                      System.out.println("Unconditionally dereferenced: " + derefSet.isUnconditionallyDereferenced(valueNumber));
  
                  }
                  Location where = thisLocation;
                  if (!isEdge && isNullValue.isNullOnSomePath() && isNullValue.isReturnValue()) {
                      try {
                          where = classContext.getCFG(method).getPreviousLocation(where);
                      } catch (CFGBuilderException e) {
                          AnalysisContext.logError(
                                  "Error looking for previous instruction to " + where + " in "
                                          + classContext.getFullyQualifiedMethodName(method), e);
                      }
                  }
                  noteUnconditionallyDereferencedNullValue(where, knownNullAndDoomedAt, nullValueGuaranteedDerefMap, derefSet,
                          isNullValue, valueNumber);
              }
          }
  
          // See if there are any known-null values in the heap that
          // will be dereferenced in the future.
          for (Map.Entry<ValueNumber, IsNullValue> entry : invFrame.getKnownValueMapEntrySet()) {
              ValueNumber valueNumber = entry.getKey();
              IsNullValue isNullValue = entry.getValue();
              if ((isNullValue.isDefinitelyNull() || isNullValue.isNullOnSomePath()
                      && (isNullValue.isReturnValue() || isNullValue.isFieldValue()))
                      && derefSet.isUnconditionallyDereferenced(valueNumber)) {
  
                  noteUnconditionallyDereferencedNullValue(thisLocation, knownNullAndDoomedAt, nullValueGuaranteedDerefMap,
                          derefSet, isNullValue, valueNumber);
              }
          }
      }