diff options
Diffstat (limited to 'st/ClassInstance.java')
-rw-r--r-- | st/ClassInstance.java | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/st/ClassInstance.java b/st/ClassInstance.java index 3de852f..d51446f 100644 --- a/st/ClassInstance.java +++ b/st/ClassInstance.java @@ -1,6 +1,8 @@ package st; import java.util.ArrayList; + +import heat.TypecheckException; import misc.*; public class ClassInstance extends AbstractInstance { @@ -27,9 +29,13 @@ public class ClassInstance extends AbstractInstance { else return false; - if (o.getName().equals(this.getName())) + if (o.getName().equals(this.getName())) { + MinimalLogger.info(String.format("Found extension end.")); + if (o.getExtend() != null && o.getExtend().equals(this.getExtend())) + throw new TypecheckException(String.format("Recursive extension on %s detected", + this.toString())); return true; - else + } else MinimalLogger.info(String.format("I (%s) do not have the same name as %s... Checking if I extend...", this.getName(), o.getName())); |