public static @NotNull MultiMap<PsiModifierListOwner, AnnotationDocGenerator> getSignatureNonCodeAnnotations(PsiModifierListOwner owner) {
    MultiMap<PsiModifierListOwner, AnnotationDocGenerator> generators = MultiMap.createLinked();
    final Project project = owner.getProject();
    ExternalAnnotationsManager externalManager = ExternalAnnotationsManager.getInstance(project);
    InferredAnnotationsManager inferredManager = InferredAnnotationsManager.getInstance(project);
    for (PsiModifierListOwner each : getSignatureOwners(owner)) {
      Set<String> shownAnnotations = new HashSet<>();
      List<AnnotationDocGenerator> nonCode = StreamEx.of(externalManager.findExternalAnnotations(each),
                                                         inferredManager.findInferredAnnotations(each))
        .flatArray(Function.identity())
        .map(annotation -> AnnotationDocGenerator.forAnnotation(each, shownAnnotations, annotation))
        .nonNull()
        .toList();
      if (!nonCode.isEmpty()) {
        generators.putValues(each, nonCode);
      }
    }
    return generators;
  }
public static @NotNull MultiMap<PsiModifierListOwner, AnnotationDocGenerator> getSignatureNonCodeAnnotations(PsiModifierListOwner owner)