Skip to content

Commit

Permalink
py domain: Ignore aliases for resolving :any: cross-references (#10089
Browse files Browse the repository at this point in the history
)

Co-authored-by: Joachim Jablon <[email protected]>
  • Loading branch information
ewjoachim and Joachim Jablon authored Jun 26, 2022
1 parent 03c1e1b commit 663a5b7
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 0 deletions.
2 changes: 2 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ Bugs fixed
* #8686: LaTeX: Text can fall out of code-block at end of page and leave artifact
on next page
* #10579: i18n: UnboundLocalError is raised on translating raw directive
* #9577, #10088: py domain: Fix warning for duplicate Python references when
using ``:any:`` and autodoc.

Testing
--------
Expand Down
7 changes: 7 additions & 0 deletions sphinx/domains/python.py
Original file line number Diff line number Diff line change
Expand Up @@ -1365,7 +1365,14 @@ def resolve_any_xref(self, env: BuildEnvironment, fromdocname: str, builder: Bui

# always search in "refspecific" mode with the :any: role
matches = self.find_obj(env, modname, clsname, target, None, 1)
multiple_matches = len(matches) > 1

for name, obj in matches:

if multiple_matches and obj.aliased:
# Skip duplicated matches
continue

if obj[2] == 'module':
results.append(('py:mod',
self._make_module_refnode(builder, fromdocname,
Expand Down
3 changes: 3 additions & 0 deletions tests/roots/test-domain-py/canonical.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@ caninical
=========

:py:class:`.Foo`
:any:`Foo`
:any:`module.Foo`
:any:`original.module.Foo`

.. py:module:: canonical
Expand Down

0 comments on commit 663a5b7

Please sign in to comment.