private static @NotNull @Nls String getContractKind(PsiCallExpression call) {
    PsiMethod method = call.resolveMethod();
    if (method == null || JavaMethodContractUtil.hasExplicitContractAnnotation(method)) {
      return JavaAnalysisBundle.message("dfa.find.cause.contract.kind.explicit");
    }
    List<? extends MethodContract> contracts = JavaMethodContractUtil.getMethodCallContracts(method, call);
    if (contracts.isEmpty()) {
      return JavaAnalysisBundle.message("dfa.find.cause.contract.kind.explicit");
    }
    if (ContainerUtil.and(contracts, c -> c instanceof StandardMethodContract)) {
      return JavaAnalysisBundle.message("dfa.find.cause.contract.kind.inferred");
    }
    return JavaAnalysisBundle.message("dfa.find.cause.contract.kind.hard.coded");
  }
private static @NotNull @Nls String getContractKind(PsiCallExpression call)