private static List<PsiReference> referencesFromNames(@NotNull PyStringLiteralExpression element,
                                                        int offset,
                                                        @NotNull StructuredDocString docString,
                                                        @NotNull List<Substring> paramNames,
                                                        @NotNull Set<TextRange> nameReferenceRanges,
                                                        @NotNull ReferenceType refType) {
    List<PsiReference> result = new ArrayList<>();
    for (Substring name : paramNames) {
      final String s = name.toString();
      if (PyNames.isIdentifier(s) && nameReferenceRanges.add(name.getTextRange())) {
        final TextRange range = name.getTextRange().shiftRight(offset);
        result.add(new DocStringParameterReference(element, range, refType));
      }
      if (refType.equals(ReferenceType.PARAMETER_TYPE)) {
        final Substring type = docString.getParamTypeSubstring(s);
        if (type != null) {
          result.addAll(parseTypeReferences(element, type, offset));
        }
      }
    }
    return result;
  }
private static List<PsiReference> referencesFromNames(@NotNull PyStringLiteralExpression element,
                                                        int offset,
                                                        @NotNull StructuredDocString docString,
                                                        @NotNull List<Substring> paramNames,
                                                        @NotNull Set<TextRange> nameReferenceRanges,
                                                        @NotNull ReferenceType refType)