diff options
| author | Cliff Click <cliffc@acm.org> | 2026-09-26 16:02:24 -0700 |
|---|---|---|
| committer | Cliff Click <cliffc@acm.org> | 2026-09-26 16:02:24 -0700 |
| commit | 4391fcc03a214e6296e19ca42487de023ab12f6a (patch) | |
| tree | 7eca88e0bea31cdae4d5f485b84604a41c82f795 /chapter22/src/main/java/com/seaofnodes | |
| parent | dd907c2d86eaaad0910e7bfe3f0d25e5caf8bdf7 (diff) | |
| download | Simple-4391fcc03a214e6296e19ca42487de023ab12f6a.tar.gz Simple-4391fcc03a214e6296e19ca42487de023ab12f6a.zip | |
bug fix widen
Failed lattice law tests mixing constants and have wide type ints; or mixing wide ints and constant arrays.
Diffstat (limited to 'chapter22/src/main/java/com/seaofnodes')
3 files changed, 4 insertions, 9 deletions
diff --git a/chapter22/src/main/java/com/seaofnodes/simple/type/TypeConAry.java b/chapter22/src/main/java/com/seaofnodes/simple/type/TypeConAry.java index 29496af6..692450d0 100644 --- a/chapter22/src/main/java/com/seaofnodes/simple/type/TypeConAry.java +++ b/chapter22/src/main/java/com/seaofnodes/simple/type/TypeConAry.java @@ -1,6 +1,5 @@ package com.seaofnodes.simple.type; -import com.seaofnodes.simple.SB; import com.seaofnodes.simple.Utils; import java.util.ArrayList; import java.io.ByteArrayOutputStream; @@ -18,8 +17,9 @@ public class TypeConAry<A> extends Type { public static final TypeConAry BOT = new TypeConAry(false,null).intern(); public static void gather(ArrayList<Type> ts) { ts.add(BOT); - TypeConAryB.gather(ts); - TypeConAryI.gather(ts); + ts.add(TypeConAryB.ABC); + ts.add(TypeConAryB.ABCD); + ts.add(TypeConAryI.I123); } @Override public String str() { return (_any?"~":"") + "[]"; } diff --git a/chapter22/src/main/java/com/seaofnodes/simple/type/TypeConAryB.java b/chapter22/src/main/java/com/seaofnodes/simple/type/TypeConAryB.java index c057c6a5..b56beb47 100644 --- a/chapter22/src/main/java/com/seaofnodes/simple/type/TypeConAryB.java +++ b/chapter22/src/main/java/com/seaofnodes/simple/type/TypeConAryB.java @@ -1,6 +1,5 @@ package com.seaofnodes.simple.type; -import java.util.ArrayList; import java.util.Arrays; import java.io.ByteArrayOutputStream; @@ -10,10 +9,8 @@ public class TypeConAryB extends TypeConAry<byte[]> { public static TypeConAryB make( String s ) { return make(s.getBytes()); } static final TypeConAryB ABC = make("abc"); static final TypeConAryB ABCD = make("abcd"); - public static void gather(ArrayList<Type> ts) { ts.add(ABC); ts.add(ABCD); } @Override public long at(int idx) { return _ary[idx]; } @Override public int len() { return _ary.length; } - @Override public int alignment() { return 0; } @Override public String str() { return "[\""+new String(_ary)+"\"]"; } @Override boolean eq(Type t) { return Arrays.equals(_ary,((TypeConAryB)t)._ary); } @Override int hash() { return Arrays.hashCode(_ary); } diff --git a/chapter22/src/main/java/com/seaofnodes/simple/type/TypeConAryI.java b/chapter22/src/main/java/com/seaofnodes/simple/type/TypeConAryI.java index f888a93d..4859e839 100644 --- a/chapter22/src/main/java/com/seaofnodes/simple/type/TypeConAryI.java +++ b/chapter22/src/main/java/com/seaofnodes/simple/type/TypeConAryI.java @@ -1,13 +1,11 @@ package com.seaofnodes.simple.type; -import java.util.ArrayList; import java.util.Arrays; public class TypeConAryI extends TypeConAry<int[]> { private TypeConAryI(int[] bs) { super(false,bs); } public static TypeConAryI make( int[] bs ) { return new TypeConAryI(bs).intern(); } - private static final TypeConAryI I123 = make(new int[]{1,2,3}); - public static void gather(ArrayList<Type> ts) { ts.add(I123); } + static final TypeConAryI I123 = make(new int[]{1,2,3}); @Override public String str() { return "[i32]"; } @Override public int alignment() { return 2; } @Override boolean eq(Type t) { return Arrays.equals(_ary,((TypeConAryI)t)._ary); } |
