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