summaryrefslogtreecommitdiff
path: root/sphinx/domains
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2010-08-14 16:51:04 +0200
committerGeorg Brandl <georg@python.org>2010-08-14 16:51:04 +0200
commit61ca36770abba35e326c564bb004105cbe2dbe4e (patch)
treedbc4ddf08b3e99790481774f6f50d53dd82b754a /sphinx/domains
parent9b6043c60857fd009e6b0c4210f9d400242b3289 (diff)
downloadsphinx-61ca36770abba35e326c564bb004105cbe2dbe4e.tar.gz
#490: Fix cross-references to objects of types added by the :func:`~.Sphinx.add_object_type` API function.
Diffstat (limited to 'sphinx/domains')
-rw-r--r--sphinx/domains/std.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/sphinx/domains/std.py b/sphinx/domains/std.py
index 63a3bf6d..6194ace9 100644
--- a/sphinx/domains/std.py
+++ b/sphinx/domains/std.py
@@ -484,7 +484,13 @@ class StandardDomain(Domain):
return make_refnode(builder, fromdocname, docname,
labelid, contnode)
else:
- docname, labelid = self.data['objects'].get((typ, target), ('', ''))
+ objtypes = self.objtypes_for_role(typ) or []
+ for objtype in objtypes:
+ if (objtype, target) in self.data['objects']:
+ docname, labelid = self.data['objects'][objtype, target]
+ break
+ else:
+ docname, labelid = '', ''
if not docname:
if typ == 'term':
env.warn(node.get('refdoc', fromdocname),