@Override
  public void updateDfType(@NotNull DfaValue value, @NotNull UnaryOperator<@NotNull DfType> updater) {
    if (!(value instanceof DfaVariableValue var)) return;
    EqClass values = getEqClass(var);
    Iterable<DfaVariableValue> vars = values == null ? List.of(var) : values;
    for (@NotNull DfaVariableValue eqVar : vars) {
      DfType type = getRecordedType(eqVar);
      if (type == null) {
        type = eqVar.getInherentType();
      }
      DfType newType = updater.apply(type);
      if (!newType.equals(type)) {
        recordVariableType(eqVar, newType);
      }
    }
  }
@Override
  public void updateDfType(@NotNull DfaValue value, @NotNull UnaryOperator<@NotNull DfType> updater)