diff options
Diffstat (limited to 'st')
-rw-r--r-- | st/ClassInstance.java | 4 | ||||
-rw-r--r-- | st/SymbolTable.java | 4 |
2 files changed, 6 insertions, 2 deletions
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())); |