mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Fixed reference targets
This commit is contained in:
parent
79e824d96a
commit
c6a6cc5c5f
@ -223,7 +223,7 @@ class WrappingDefExpr(DefExpr):
|
|||||||
self.typename = typename
|
self.typename = typename
|
||||||
|
|
||||||
def get_name(self):
|
def get_name(self):
|
||||||
return self.typename
|
return self.typename.get_name()
|
||||||
|
|
||||||
|
|
||||||
class ModifierDefExpr(WrappingDefExpr):
|
class ModifierDefExpr(WrappingDefExpr):
|
||||||
@ -293,7 +293,7 @@ class ArgumentDefExpr(DefExpr):
|
|||||||
self.default = default
|
self.default = default
|
||||||
|
|
||||||
def get_name(self):
|
def get_name(self):
|
||||||
return self.name
|
return self.name.get_name()
|
||||||
|
|
||||||
def get_id(self):
|
def get_id(self):
|
||||||
return self.type.get_id()
|
return self.type.get_id()
|
||||||
@ -312,7 +312,7 @@ class NamedDefExpr(DefExpr):
|
|||||||
self.static = static
|
self.static = static
|
||||||
|
|
||||||
def get_name(self):
|
def get_name(self):
|
||||||
return self.name
|
return self.name.get_name()
|
||||||
|
|
||||||
def get_modifiers(self):
|
def get_modifiers(self):
|
||||||
rv = []
|
rv = []
|
||||||
@ -763,6 +763,7 @@ class CPPObject(ObjectDescription):
|
|||||||
pnode = addnodes.pending_xref(
|
pnode = addnodes.pending_xref(
|
||||||
'', refdomain='cpp', reftype='type',
|
'', refdomain='cpp', reftype='type',
|
||||||
reftarget=text, modname=None, classname=None)
|
reftarget=text, modname=None, classname=None)
|
||||||
|
pnode['cpp:parent'] = self.env.temp_data.get('cpp:parent')
|
||||||
pnode += nodes.Text(text)
|
pnode += nodes.Text(text)
|
||||||
node += pnode
|
node += pnode
|
||||||
|
|
||||||
@ -1011,14 +1012,14 @@ class CPPDomain(Domain):
|
|||||||
def resolve_xref(self, env, fromdocname, builder,
|
def resolve_xref(self, env, fromdocname, builder,
|
||||||
typ, target, node, contnode):
|
typ, target, node, contnode):
|
||||||
def _create_refnode(expr):
|
def _create_refnode(expr):
|
||||||
target = unicode(expr)
|
name = unicode(expr)
|
||||||
if target not in self.data['objects']:
|
if name not in self.data['objects']:
|
||||||
return None
|
return None
|
||||||
obj = self.data['objects'][target]
|
obj = self.data['objects'][name]
|
||||||
if obj[1] != typ:
|
if obj[1] != typ:
|
||||||
return None
|
return None
|
||||||
return make_refnode(builder, fromdocname, obj[0], target,
|
return make_refnode(builder, fromdocname, obj[0], expr.get_id(),
|
||||||
contnode, target)
|
contnode, name)
|
||||||
|
|
||||||
parser = DefinitionParser(target)
|
parser = DefinitionParser(target)
|
||||||
# XXX: warn?
|
# XXX: warn?
|
||||||
@ -1030,7 +1031,7 @@ class CPPDomain(Domain):
|
|||||||
except DefinitionError:
|
except DefinitionError:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
parent = node.get('cpp:parent')
|
parent = node['cpp:parent']
|
||||||
|
|
||||||
rv = _create_refnode(expr)
|
rv = _create_refnode(expr)
|
||||||
if rv is not None or parent is None:
|
if rv is not None or parent is None:
|
||||||
|
Loading…
Reference in New Issue
Block a user