From 60574eae3bb435e9e8263b0a534f72ddf68dee43 Mon Sep 17 00:00:00 2001 From: Andy Neebel Date: Thu, 22 Jun 2017 09:33:28 -0500 Subject: [PATCH] Clean up if tree, use the objtypes list --- sphinx/domains/cpp.py | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/sphinx/domains/cpp.py b/sphinx/domains/cpp.py index ac9978640..957b2bd5b 100644 --- a/sphinx/domains/cpp.py +++ b/sphinx/domains/cpp.py @@ -4816,13 +4816,13 @@ class CPPDomain(Domain): name = 'cpp' label = 'C++' object_types = { - 'class': ObjType(l_('class'), 'class', 'typeOrConcept'), - 'function': ObjType(l_('function'), 'func', 'typeOrConcept'), - 'member': ObjType(l_('member'), 'member'), - 'type': ObjType(l_('type'), 'type', 'typeOrConcept'), - 'concept': ObjType(l_('concept'), 'concept', 'typeOrConcept'), - 'enum': ObjType(l_('enum'), 'enum', 'typeOrConcept'), - 'enumerator': ObjType(l_('enumerator'), 'enumerator') + 'class': ObjType(l_('class'), 'class', 'type', 'typeOrConcept'), + 'function': ObjType(l_('function'), 'func', 'function', 'type', 'typeOrConcept'), + 'member': ObjType(l_('member'), 'member', 'var'), + 'type': ObjType(l_('type'), 'type', 'typeOrConcept'), + 'concept': ObjType(l_('concept'), 'concept', 'typeOrConcept'), + 'enum': ObjType(l_('enum'), 'enum', 'type', 'typeOrConcept'), + 'enumerator': ObjType(l_('enumerator'), 'enumerator') } directives = { @@ -4955,16 +4955,10 @@ class CPPDomain(Domain): return True if declTyp == 'templateParam': return True - if typ == 'var' or typ == 'member': - return declTyp in ['var', 'member'] - if typ in ['enum', 'enumerator', 'function', 'class', 'concept']: - return declTyp == typ - validForType = ['enum', 'class', 'function', 'type'] - if typ == 'typeOrConcept': - return declTyp == 'concept' or declTyp in validForType - if typ == 'type': - return declTyp in validForType - print("Type is %s" % typ) + objtypes = self.objtypes_for_role(typ) + if objtypes and declTyp in objtypes: + return True + print("Type is %s, declType is %s" % (typ, declTyp)) assert False if not checkType(): warner.warn("cpp:%s targets a %s (%s)."