bug fixes
authorbdemsky <bdemsky>
Mon, 27 Jun 2011 08:54:33 +0000 (08:54 +0000)
committerbdemsky <bdemsky>
Mon, 27 Jun 2011 08:54:33 +0000 (08:54 +0000)
Robust/src/IR/ClassDescriptor.java
Robust/src/IR/SymbolTable.java
Robust/src/IR/Tree/SemanticCheck.java

index e218c79001e9624fee570f29c5333b6f9110cd0a..43923d0cff3830e103b83e33840300a2232723a0 100644 (file)
@@ -130,7 +130,7 @@ public class ClassDescriptor extends Descriptor {
   }
 
   public String getSafeSymbol() {
-    return safename.replace(".","___________");
+    return safename.replace(".","___________").replace("$","___DOLLAR___");
   }
 
   public String printTree(State state) {
index cec4688e2636d43125166a98cabec60e9336b1bf..86ebe7b251dc80579e2955fe209f7c2d38a7a2ec 100644 (file)
@@ -45,10 +45,8 @@ public class SymbolTable {
     else
       hs=new HashSet();
     if(this.parentIFs != null) {
-      for(int i = 0; i < this.parentIFs.size(); i++) {
-        if(this.parentIFs.elementAt(i).contains(name)) {
-          hs.addAll((HashSet)(this.parentIFs.elementAt(i).getPSet(name)));
-        }
+      for(int i = 0; i < parentIFs.size(); i++) {
+       hs.addAll(parentIFs.elementAt(i).getPSet(name));
       }
     }
     if (table.containsKey(name)) {
index 72d73703c53183d9c46f59f637c25488e21bcdd3..f6f5df32b19299db5a4d210efb03e76dcf18ee5d 100644 (file)
@@ -85,6 +85,7 @@ public class SemanticCheck {
           }
           if (oldstatus<REFERENCE) {
             cd.addSuperInterfaces(superif);
+            cd.getMethodTable().addParentIF(superif.getMethodTable());
             cd.getFieldTable().addParentIF(superif.getFieldTable());
           }
         }
@@ -1253,8 +1254,7 @@ NextMethod: for (Iterator methodit = methoddescriptorset.iterator(); methodit.ha
     if (!typetolookin.isClass())
       throw new Error("Error with method call to "+min.getMethodName()+" in class "+typetolookin);
     ClassDescriptor classtolookin=typetolookin.getClassDesc();
-    checkClass(classtolookin, INIT);
-
+    checkClass(classtolookin, REFERENCE);
     Set methoddescriptorset=classtolookin.getMethodTable().getSet(min.getMethodName());
     MethodDescriptor bestmd=null;
 NextMethod: