From a66041b54106bd0f7c9b1d23154e969d285adb20 Mon Sep 17 00:00:00 2001 From: Jakob Lykke Andersen Date: Wed, 27 Jan 2016 23:46:29 +0900 Subject: [PATCH] Fix exception on reference lookup in C++ domain. Fixes sphinx-doc/sphinx#2271. --- sphinx/domains/cpp.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sphinx/domains/cpp.py b/sphinx/domains/cpp.py index 5a7bddc848..8868fe2850 100644 --- a/sphinx/domains/cpp.py +++ b/sphinx/domains/cpp.py @@ -4009,7 +4009,7 @@ class CPPDomain(Domain): else: ourNames[name] = docname - def _resolve_xref_inner(self, env, fromdocname, builder, + def _resolve_xref_inner(self, env, fromdocname, builder, typ, target, node, contnode, emitWarnings=True): class Warner(object): def warn(self, msg): @@ -4051,7 +4051,7 @@ class CPPDomain(Domain): name = text_type(fullNestedName).lstrip(':') docname = s.docname assert docname - if declaration.objectType == 'function': + if typ == 'any' and declaration.objectType == 'function': title = name if title.endswith('()'): title = title[:-2] # remove parentheses @@ -4065,13 +4065,13 @@ class CPPDomain(Domain): def resolve_xref(self, env, fromdocname, builder, typ, target, node, contnode): - return self._resolve_xref_inner(env, fromdocname, builder, target, - node, contnode)[0] + return self._resolve_xref_inner(env, fromdocname, builder, typ, + target, node, contnode)[0] def resolve_any_xref(self, env, fromdocname, builder, target, node, contnode): node, objtype = self._resolve_xref_inner(env, fromdocname, builder, - target, node, contnode, + 'any', target, node, contnode, emitWarnings=False) if node: return [('cpp:' + self.role_for_objtype(objtype), node)]