From 4be43794169610d45e47468702c63cdfbc5deb5a Mon Sep 17 00:00:00 2001 From: Cliff Click Date: Fri, 13 Sep 2024 09:40:38 -0700 Subject: move x-x check up front --- chapter08/src/main/java/com/seaofnodes/simple/node/SubNode.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'chapter08/src/main/java/com') diff --git a/chapter08/src/main/java/com/seaofnodes/simple/node/SubNode.java b/chapter08/src/main/java/com/seaofnodes/simple/node/SubNode.java index 98aa679f..af66b950 100644 --- a/chapter08/src/main/java/com/seaofnodes/simple/node/SubNode.java +++ b/chapter08/src/main/java/com/seaofnodes/simple/node/SubNode.java @@ -21,15 +21,16 @@ public class SubNode extends Node { @Override public Type compute() { + // Sub of same is 0 + if( in(1)==in(2) ) + return TypeInteger.ZERO; + if (in(1)._type instanceof TypeInteger i0 && in(2)._type instanceof TypeInteger i1) { if (i0.isConstant() && i1.isConstant()) return TypeInteger.constant(i0.value()-i1.value()); return i0.meet(i1); } - // Sub of same is 0 - if( in(1)==in(2) ) - return TypeInteger.ZERO; return Type.BOTTOM; } -- cgit v1.2.3