@Override
      public void visitMethodCallExpression(@NotNull PsiMethodCallExpression call) {
        if (ExpressionUtils.isVoidContext(call)) return;
        if (COLLECTIONS_UNMODIFIABLE.test(call)) {
          PsiExpression arg = call.getArgumentList().getExpressions()[0];
          DfType dfType = CommonDataflow.getDfType(arg);
          if (!Mutability.fromDfType(dfType).isUnmodifiable()) return;

          String methodName = call.getMethodExpression().getReferenceName();
          if (methodName == null) return;

          holder.registerProblem(call,
                                 JavaBundle.message("inspection.redundant.unmodifiable.call.display.name", methodName),
                                 ProblemHighlightType.GENERIC_ERROR_OR_WARNING,
                                 new TextRange(0, call.getArgumentList().getStartOffsetInParent()),
                                 new UnwrapUnmodifiableFix());
        }
      }
@Override
      public void visitMethodCallExpression(@NotNull PsiMethodCallExpression call)