public void visitCall(UCallExpression callExpression) {
      if (callExpression == null) return;

      var element = callExpression.getSourcePsi();
      if (element == null) return;

      PsiElement elementToHighLight = AnalysisUastUtil.getMethodIdentifierSourcePsi(callExpression);
      if (elementToHighLight == null) return;

      // implicit delegating constructor, check it in visitConstructor
      if (callExpression.getKind() == UastCallKind.CONSTRUCTOR_CALL && elementToHighLight.getTextRange().isEmpty()) {
        return;
      }

      ContextType contextType = isContextNonBlockingFor(element, myNonBlockingContextCheckers, mySettings);
      if (contextType instanceof ContextType.Blocking) {
        return;
      }
      ProgressIndicatorProvider.checkCanceled();

      PsiMethod referencedMethod = callExpression.resolve();
      if (referencedMethod == null) return;

      if (!isMethodOrSupersBlocking(referencedMethod, myBlockingMethodCheckers, mySettings)) return;

      if (contextType instanceof ContextType.Unsure && myConsiderUnknownContextBlocking) {
        if (myHolder.isOnTheFly()) {
          myHolder.registerProblem(
            elementToHighLight,
            JvmAnalysisBundle.message("jvm.inspections.blocking.method.consider.unknown.context.nonblocking"),
            ProblemHighlightType.INFORMATION,
            new ConsiderUnknownContextBlockingFix(false));
        }
        return;
      }

      ElementContext elementContext = new ElementContext(element, mySettings);
      StreamEx<LocalQuickFix> fixesStream = StreamEx.of(myBlockingMethodCheckers)
        .flatArray(checker -> checker.getQuickFixesFor(elementContext));

      if (contextType instanceof ContextType.Unsure && !myConsiderUnknownContextBlocking) {
        fixesStream = fixesStream.append(new ConsiderUnknownContextBlockingFix(true));
      }

      String message;
      if (contextType instanceof ContextType.NonBlocking &&
          StringUtil.isNotEmpty(((ContextType.NonBlocking)contextType).getDescription())) {
        String contextDescription = ((ContextType.NonBlocking)contextType).getDescription();
        message = JvmAnalysisBundle.message("jvm.inspections.blocking.method.problem.wildcard.descriptor", contextDescription);
      }
      else {
        message = JvmAnalysisBundle.message("jvm.inspections.blocking.method.problem.descriptor");
      }
      myHolder.registerProblem(elementToHighLight, message, fixesStream.toArray(LocalQuickFix.EMPTY_ARRAY));
    }
public void visitCall(UCallExpression callExpression)