summaryrefslogtreecommitdiff
path: root/chapter18/src/main/java/com/seaofnodes
diff options
context:
space:
mode:
authorCliff Click <cliffc@acm.org>2026-10-07 12:37:06 -0700
committerCliff Click <cliffc@acm.org>2026-10-07 12:37:06 -0700
commit514b3147bf08817d17aacc492be255621209ec8b (patch)
treed0bc5ba23705d7dae5f0dee3cab15c9beab70917 /chapter18/src/main/java/com/seaofnodes
parent5f51534493763d4aab2f2fc34767de953a08e6a3 (diff)
downloadSimple-514b3147bf08817d17aacc492be255621209ec8b.tar.gz
Simple-514b3147bf08817d17aacc492be255621209ec8b.zip
RoundF32 actually rounds
Diffstat (limited to 'chapter18/src/main/java/com/seaofnodes')
-rw-r--r--chapter18/src/main/java/com/seaofnodes/simple/node/RoundF32Node.java1
-rw-r--r--chapter18/src/main/java/com/seaofnodes/simple/type/TypeStruct.java2
2 files changed, 2 insertions, 1 deletions
diff --git a/chapter18/src/main/java/com/seaofnodes/simple/node/RoundF32Node.java b/chapter18/src/main/java/com/seaofnodes/simple/node/RoundF32Node.java
index 78e7698c..10a0e4aa 100644
--- a/chapter18/src/main/java/com/seaofnodes/simple/node/RoundF32Node.java
+++ b/chapter18/src/main/java/com/seaofnodes/simple/node/RoundF32Node.java
@@ -16,6 +16,7 @@ public class RoundF32Node extends Node {
public Type compute() {
if (in(1)._type instanceof TypeFloat i0 && i0.isConstant() )
return TypeFloat.constant((float)i0.value());
+ if( in(1)._type==TypeFloat.F64 ) return TypeFloat.F32;
return in(1)._type;
}
diff --git a/chapter18/src/main/java/com/seaofnodes/simple/type/TypeStruct.java b/chapter18/src/main/java/com/seaofnodes/simple/type/TypeStruct.java
index bc640955..fff6a7db 100644
--- a/chapter18/src/main/java/com/seaofnodes/simple/type/TypeStruct.java
+++ b/chapter18/src/main/java/com/seaofnodes/simple/type/TypeStruct.java
@@ -49,7 +49,7 @@ public class TypeStruct extends Type {
// Array
public static TypeStruct makeAry(TypeInteger len, int lenAlias, Type body, int bodyAlias) {
- assert body instanceof TypeInteger || (body instanceof TypeNil tn && tn.nullable());
+ assert body instanceof TypeInteger || body instanceof TypeFloat || (body instanceof TypeNil tn && tn.nullable());
return make("[" + body.str() + "]",
Field.make("#" ,len , lenAlias,true ),
Field.make("[]",body,bodyAlias,false));