Clean up if tree, use the objtypes list

This commit is contained in:
Andy Neebel
2017-06-22 09:33:28 -05:00
parent 5ebfd51672
commit 60574eae3b

View File

@@ -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)."