diff options
Diffstat (limited to 'chapter10/src/main/java/com/seaofnodes')
| -rw-r--r-- | chapter10/src/main/java/com/seaofnodes/simple/node/SubNode.java | 4 |
1 files changed, 4 insertions, 0 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 760177d7..7be53b68 100644 --- a/chapter10/src/main/java/com/seaofnodes/simple/node/SubNode.java +++ b/chapter10/src/main/java/com/seaofnodes/simple/node/SubNode.java @@ -39,6 +39,10 @@ public class SubNode extends Node { if( in(2) instanceof MinusNode minus ) return new AddNode(in(1),minus.in(1)); + // (-x) - y is -(x+y) + if( in(1) instanceof MinusNode minus ) + return new MinusNode(new AddNode(minus.in(1),in(2)).peephole()); + return null; } |
