Commit c1be0eac authored by gsamain's avatar gsamain

Fix Symtab for CppClassScope nested types

parent 9619c639
...@@ -2403,6 +2403,7 @@ class CppClassScope(Scope): ...@@ -2403,6 +2403,7 @@ class CppClassScope(Scope):
Scope.__init__(self, name, outer_scope, None) Scope.__init__(self, name, outer_scope, None)
self.directives = outer_scope.directives self.directives = outer_scope.directives
self.inherited_var_entries = [] self.inherited_var_entries = []
self.inherited_type_entries = []
if templates is not None: if templates is not None:
for T in templates: for T in templates:
template_entry = self.declare( template_entry = self.declare(
...@@ -2511,12 +2512,13 @@ class CppClassScope(Scope): ...@@ -2511,12 +2512,13 @@ class CppClassScope(Scope):
modifiers=base_entry.func_modifiers, modifiers=base_entry.func_modifiers,
utility_code=base_entry.utility_code) utility_code=base_entry.utility_code)
entry.is_inherited = 1 entry.is_inherited = 1
for base_entry in base_scope.type_entries: for base_entry in base_scope.type_entries + base_scope.inherited_type_entries:
if base_entry.name not in base_templates: if base_entry.name not in base_templates:
entry = self.declare_type(base_entry.name, base_entry.type, entry = self.declare_type(base_entry.name, base_entry.type,
base_entry.pos, base_entry.cname, base_entry.pos, base_entry.cname,
base_entry.visibility) base_entry.visibility, defining=0)
entry.is_inherited = 1 entry.is_inherited = 1
self.inherited_type_entries.append(entry)
def specialize(self, values, type_entry): def specialize(self, values, type_entry):
scope = CppClassScope(self.name, self.outer_scope) scope = CppClassScope(self.name, self.outer_scope)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment