private static DfaMemoryState stateForCatchClause(@NotNull DfaMemoryState state,
                                                    @NotNull DataFlowInterpreter interpreter,
                                                    @Nullable VariableDescriptor param,
                                                    @NotNull TypeConstraint constraint) {
    DfaMemoryState catchingCopy = state.createCopy();
    if (param != null) {
      DfaVariableValue value = interpreter.getFactory().getVarFactory().createVariableValue(param);
      catchingCopy.meetDfType(value, constraint.asDfType().meet(DfaNullability.NOT_NULL.asDfType()));
    }
    return catchingCopy;
  }
private static DfaMemoryState stateForCatchClause(@NotNull DfaMemoryState state,
                                                    @NotNull DataFlowInterpreter interpreter,
                                                    @Nullable VariableDescriptor param,
                                                    @NotNull TypeConstraint constraint)