Check for the have_pure_virtual_methods flag recursively in parent classes.

This commit is contained in:
Gustavo J. A. M. Carneiro committed 2008-03-22 18:21:30 +00:00
1 parent a7bacc8315
commit fc7083eacc
1 file changed
+6 -1
+6 -1
View File
@@ -585,7 +585,12 @@ class CppClass(object):
CodeGenerationError if none found"""
if self.cannot_be_constructed:
raise CodeGenerationError("%s cannot be constructed" % self.full_name)
if self.have_pure_virtual_methods:
have_pure_virtual_methods = False
cls = self
while cls is not None:
have_pure_virtual_methods = (have_pure_virtual_methods or cls.have_pure_virtual_methods)
cls = cls.parent
if have_pure_virtual_methods:
raise CodeGenerationError("%s cannot be constructed" % self.full_name)
else:
return self.full_name