From 40d176b0e5a6e3bc964f97bc68fa22cf23a2efa2 Mon Sep 17 00:00:00 2001 From: bd-912 Date: Sun, 12 May 2024 01:07:41 -0600 Subject: Fix last bugs in HeatVisitor.java --- st/ClassInstance.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'st/ClassInstance.java') 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())); -- cgit v1.2.3