From 2a40b613252eb3d7a95624957dca61fdfa30dc2a Mon Sep 17 00:00:00 2001 From: bd-912 Date: Sat, 11 May 2024 15:14:07 -0600 Subject: Fix three more bugs related to st --- st/ClassInstance.java | 4 ++-- st/SymbolTable.java | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'st') diff --git a/st/ClassInstance.java b/st/ClassInstance.java index a7a4500..3de852f 100644 --- a/st/ClassInstance.java +++ b/st/ClassInstance.java @@ -39,8 +39,8 @@ public class ClassInstance extends AbstractInstance { } ClassInstance te = this.getExtend(); - if (te.equals(o)) { - MinimalLogger.info(String.format("I (%s) extends %s!", this.getName(), o.getName())); + if (te.equalsOnExtend(o)) { + MinimalLogger.info(String.format("I (%s) extend %s!", this.getName(), o.getName())); return true; } MinimalLogger.info(String.format("I (%s) do not extend %s! I extend %s instead.", this.getName(), o.getName(), te.getName())); diff --git a/st/SymbolTable.java b/st/SymbolTable.java index 0fca239..fa196e3 100644 --- a/st/SymbolTable.java +++ b/st/SymbolTable.java @@ -52,6 +52,10 @@ public class SymbolTable { ClassInstance cls = (ClassInstance) this.active.get(TypeEnum.classname); ClassInstance ext = this.getClass(arg); + if (ext == null) + throw new TypecheckException(String.format("There is no %s to extend!", + arg)); + MinimalLogger.info(String.format("%s found to extend %s", cls.getName(), ext.getName())); -- cgit v1.2.3