boolean (@NotNull Project project, @NotNull Editor editor, @NotNull PsiElement element) { PsiIdentifier identifier = ObjectUtils.tryCast(element, PsiIdentifier.class); if (identifier == null) return false; PsiReferenceExpression methodExpression = ObjectUtils.tryCast(identifier.getParent(), PsiReferenceExpression.class); if (methodExpression == null) return false; PsiElement parent = methodExpression.getParent(); if (parent instanceof PsiMethodCallExpression callExpression && callExpression.getTypeArguments().length == 0) { JavaResolveResult result = callExpression.resolveMethodGenerics(); if (result instanceof MethodCandidateInfo candidateInfo && candidateInfo.isApplicable()) { PsiMethod method = candidateInfo.getElement(); setText(getFamilyName()); return !method.isConstructor() && method.hasTypeParameters() && AddTypeArgumentsFix.addTypeArguments(callExpression, null) != null; } } return false; }