diff options
Diffstat (limited to 'chapter10/src/main/java/com')
| -rw-r--r-- | chapter10/src/main/java/com/seaofnodes/simple/node/SubNode.java | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/chapter10/src/main/java/com/seaofnodes/simple/node/SubNode.java b/chapter10/src/main/java/com/seaofnodes/simple/node/SubNode.java index 53f90dd6..b87115cd 100644 --- a/chapter10/src/main/java/com/seaofnodes/simple/node/SubNode.java +++ b/chapter10/src/main/java/com/seaofnodes/simple/node/SubNode.java @@ -21,14 +21,15 @@ 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()); } - // Sub of same is 0 - if( in(1)==in(2) ) - return TypeInteger.ZERO; return in(1)._type.meet(in(2)._type); } |
