summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--heat/HeatVisitor.java3
-rw-r--r--output/ex16.java22
-rw-r--r--output/negative/DumbBracketSend-error.java22
-rw-r--r--output/negative/DumbSend-error.java22
4 files changed, 68 insertions, 1 deletions
diff --git a/heat/HeatVisitor.java b/heat/HeatVisitor.java
index 41fd3fe..e02f0d2 100644
--- a/heat/HeatVisitor.java
+++ b/heat/HeatVisitor.java
@@ -784,7 +784,7 @@ public class HeatVisitor extends GJDepthFirst<TypeBundle,ArrayList<TypeBundle>>
t = new TypeInstance("null",null,null,null);
ClassInstance c = this.recentClass;
MinimalLogger.info(String.format("Setting class to the most recent return: %s",
- c.toString()));
+ c));
t.addClassInstance(c);
break;
default:
@@ -951,6 +951,7 @@ public class HeatVisitor extends GJDepthFirst<TypeBundle,ArrayList<TypeBundle>>
n.getClass().getSimpleName()));
///////////////////////////////////////////////////////////////
TypeInstance t = this.symt.getType(n.f0.tokenImage);
+ this.recentClass = t.getClassInstance();
_ret = new TypeBundle(t.getType(), t.getClassInstance());
///////////////////////////////////////////////////////////////
MinimalLogger.info(String.format("<- %s with %s",
diff --git a/output/ex16.java b/output/ex16.java
new file mode 100644
index 0000000..71dcede
--- /dev/null
+++ b/output/ex16.java
@@ -0,0 +1,22 @@
+class ex16 {
+ public static void main(String[] a){
+ System.out.println(new Test().start());
+ }
+}
+
+class Test {
+
+ Test test;
+ int[] i;
+
+ public int start() {
+ i = new int[10];
+ test = (test).next();
+ return 0;
+ }
+
+ public Test next() {
+ System.out.println(1);
+ return test;
+ }
+}
diff --git a/output/negative/DumbBracketSend-error.java b/output/negative/DumbBracketSend-error.java
new file mode 100644
index 0000000..263f66f
--- /dev/null
+++ b/output/negative/DumbBracketSend-error.java
@@ -0,0 +1,22 @@
+class ex19 {
+ public static void main(String[] a){
+ System.out.println(new Test().start());
+ }
+}
+
+class Test {
+
+ Test test;
+ int[] i;
+
+ public int start() {
+ i = new int[10];
+ test = (i).next();
+ return 0;
+ }
+
+ public Test next() {
+ System.out.println(1);
+ return test;
+ }
+}
diff --git a/output/negative/DumbSend-error.java b/output/negative/DumbSend-error.java
new file mode 100644
index 0000000..529ad39
--- /dev/null
+++ b/output/negative/DumbSend-error.java
@@ -0,0 +1,22 @@
+class DumbSend {
+ public static void main(String[] a){
+ System.out.println(new Test().start());
+ }
+}
+
+class Test {
+
+ Test test;
+ int[] i;
+
+ public int start() {
+ i = new int[10];
+ test = i.next();
+ return 0;
+ }
+
+ public Test next() {
+ System.out.println(1);
+ return test;
+ }
+}