Collection<String> (@NotNull PsiNameValuePair pair) { final PsiAnnotationMemberValue value = pair.getValue(); if (value != null && pair.getName() == null) { final PsiElement parent = pair.getParent(); if ((parent instanceof PsiAnnotationParameterList parameterList)) { final PsiClass annotationClass = getAnnotationClass(parameterList); if (annotationClass != null) { final Set<String> usedNames = getUsedAttributeNames(parameterList); final Collection<PsiMethod> availableMethods = Arrays.stream(annotationClass.getMethods()) .filter(PsiAnnotationMethod.class::isInstance) .filter(psiMethod -> !usedNames.contains(psiMethod.getName())).toList(); if (!availableMethods.isEmpty()) { final PsiType valueType = CreateAnnotationMethodFromUsageFix.getAnnotationValueType(value); return availableMethods.stream() .filter(psiMethod -> isCompatibleReturnType(psiMethod, valueType)) .map(PsiMethod::getName) .collect(Collectors.toSet()); } } } } return Collections.emptyList(); }