From 99cbffd7f0c644650eb57e68f08cf8d4937e8d48 Mon Sep 17 00:00:00 2001 From: pycsham <shampuiyanchloe@gmail.com> Date: Fri, 28 Feb 2020 21:49:57 -0500 Subject: [PATCH] second attempt to fix issues brought about by abstract check fix --- TypeNodes.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/TypeNodes.py b/TypeNodes.py index d5152a8..69a1a34 100644 --- a/TypeNodes.py +++ b/TypeNodes.py @@ -162,8 +162,8 @@ class ClassNode(ClassInterNode): for con in contains: 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)) + if (not con.body) and (not ('native' in con.mods)) and (not ('abstract' in self.mods)) and (not (con in self.constructors)): + raise Exception("ERROR: Non-abstract Class '{}' contains an abstract method {}".format(self.name, con.name)) # hierarchy: string[] def getContains(self, hierarchy): @@ -178,6 +178,8 @@ class ClassNode(ClassInterNode): for con in superContains: conOverwritten = False for method in contains: + print(method) + print(con) if (method == con): # cannot have same signiture but different return types if (method.methodType != con.methodType): -- GitLab