Commit fa0af82e authored by Robert Bradshaw's avatar Robert Bradshaw

Fix test (discovered) broken in merge.

parent 0532e356
...@@ -3336,6 +3336,17 @@ class CppClassType(CType): ...@@ -3336,6 +3336,17 @@ class CppClassType(CType):
def is_template_type(self): def is_template_type(self):
return self.templates is not None and self.template_type is None return self.templates is not None and self.template_type is None
def get_fused_types(self, result=None, seen=None):
if result is None:
result = []
seen = set()
if self.namespace:
self.namespace.get_fused_types(result, seen)
if self.templates:
for T in self.templates:
T.get_fused_types(result, seen)
return result
def specialize_here(self, pos, template_values = None): def specialize_here(self, pos, template_values = None):
if not self.is_template_type(): if not self.is_template_type():
error(pos, "'%s' type is not a template" % self) error(pos, "'%s' type is not a template" % self)
......
...@@ -2130,7 +2130,7 @@ class CppClassScope(Scope): ...@@ -2130,7 +2130,7 @@ class CppClassScope(Scope):
entry = self.declare(name, cname, type, pos, visibility) entry = self.declare(name, cname, type, pos, visibility)
entry.is_variable = 1 entry.is_variable = 1
if type.is_cfunction and self.type: if type.is_cfunction and self.type:
if not self.type.templates or not any(T.is_fused for T in self.type.templates): if not self.type.get_fused_types:
entry.func_cname = "%s::%s" % (self.type.empty_declaration_code(), cname) entry.func_cname = "%s::%s" % (self.type.empty_declaration_code(), cname)
if name != "this" and (defining or name != "<init>"): if name != "this" and (defining or name != "<init>"):
self.var_entries.append(entry) self.var_entries.append(entry)
......
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