private static boolean hasUncheckedBounds(InferenceVariable inferenceVariable,
                                            PsiClassType targetType,
                                            InferenceSession session) {
    if (!targetType.isRaw()) {
      final InferenceBound[] boundTypes = {InferenceBound.EQ, InferenceBound.LOWER};
      for (InferenceBound inferenceBound : boundTypes) {
        final List<PsiType> bounds = inferenceVariable.getBounds(inferenceBound);
        for (PsiType bound : bounds) {
          if (TypeCompatibilityConstraint.isUncheckedConversion(targetType, bound, session)) {
            return true;
          }
        }
      }
    }
    return false;
  }
private static boolean hasUncheckedBounds(InferenceVariable inferenceVariable,
                                            PsiClassType targetType,
                                            InferenceSession session)