diff --git a/TypeNodes.py b/TypeNodes.py index 1cf778f63414d9f64d5bc09ef2b31f7ec7edc52e..d5152a89f9509e74ac533971ff456350be7fcc47 100644 --- a/TypeNodes.py +++ b/TypeNodes.py @@ -160,7 +160,9 @@ class ClassNode(ClassInterNode): # 10. A class that contains (declares or inherits) any abstract methods must be abstract. for con in contains: - if 'abstract' in con.mods and 'abstract' not in self.mods: + if 'abstract' in con.mods and (not('abstract' in self.mods)): + raise Exception("ERROR: Non-abstract Class '{}' contains an abstract method".format(self.name)) + if (not con.body) and (not ('native' in con.mods)) and (not ('abstract' in self.mods)): raise Exception("ERROR: Non-abstract Class '{}' contains an abstract method".format(self.name)) # hierarchy: string[]