diff options
23 files changed, 63 insertions, 108 deletions
diff --git a/chapter02/src/main/java/com/seaofnodes/simple/node/Node.java b/chapter02/src/main/java/com/seaofnodes/simple/node/Node.java index 6f47f9eb..fd233108 100644 --- a/chapter02/src/main/java/com/seaofnodes/simple/node/Node.java +++ b/chapter02/src/main/java/com/seaofnodes/simple/node/Node.java @@ -153,7 +153,7 @@ public abstract class Node { } // Breaks the edge invariants, used temporarily - protected <N extends Node> N addUse(Node n) { _outputs.add(n); return (N)this; } + protected <N extends Node> void addUse(N n) { _outputs.add(n); } // Remove node 'use' from 'def's (i.e. our) output list, by compressing the list in-place. // Return true if the output list is empty afterward. diff --git a/chapter03/src/main/java/com/seaofnodes/simple/node/Node.java b/chapter03/src/main/java/com/seaofnodes/simple/node/Node.java index 82357f9b..6e4617ff 100644 --- a/chapter03/src/main/java/com/seaofnodes/simple/node/Node.java +++ b/chapter03/src/main/java/com/seaofnodes/simple/node/Node.java @@ -177,7 +177,7 @@ public abstract class Node { } // Breaks the edge invariants, used temporarily - protected <N extends Node> N addUse(Node n) { _outputs.add(n); return (N)this; } + protected <N extends Node> void addUse(N n) { _outputs.add(n); } // Remove node 'use' from 'def's (i.e. our) output list, by compressing the list in-place. // Return true if the output list is empty afterward. diff --git a/chapter04/src/main/java/com/seaofnodes/simple/node/Node.java b/chapter04/src/main/java/com/seaofnodes/simple/node/Node.java index 9fa0a95a..2c0e3832 100644 --- a/chapter04/src/main/java/com/seaofnodes/simple/node/Node.java +++ b/chapter04/src/main/java/com/seaofnodes/simple/node/Node.java @@ -168,7 +168,7 @@ public abstract class Node { } // Breaks the edge invariants, used temporarily - protected <N extends Node> N addUse(Node n) { _outputs.add(n); return (N)this; } + protected <N extends Node> void addUse(N n) { _outputs.add(n); } // Remove node 'use' from 'def's (i.e. our) output list, by compressing the list in-place. // Return true if the output list is empty afterward. @@ -206,7 +206,7 @@ public abstract class Node { // Shortcuts to stop DCE mid-parse // Add bogus null use to keep node alive - public <N extends Node> N keep() { return addUse(null); } + public <N extends Node> N keep() { addUse(null); return (N)this; } // Remove bogus null. public <N extends Node> N unkeep() { delUse(null); return (N)this; } // ------------------------------------------------------------------------ diff --git a/chapter05/src/main/java/com/seaofnodes/simple/node/Node.java b/chapter05/src/main/java/com/seaofnodes/simple/node/Node.java index 5412108b..8681ac5a 100644 --- a/chapter05/src/main/java/com/seaofnodes/simple/node/Node.java +++ b/chapter05/src/main/java/com/seaofnodes/simple/node/Node.java @@ -168,7 +168,7 @@ public abstract class Node { } // Breaks the edge invariants, used temporarily - protected <N extends Node> N addUse(Node n) { _outputs.add(n); return (N)this; } + protected <N extends Node> void addUse(N n) { _outputs.add(n); } // Remove node 'use' from 'def's (i.e. our) output list, by compressing the list in-place. // Return true if the output list is empty afterward. @@ -206,7 +206,7 @@ public abstract class Node { // Shortcuts to stop DCE mid-parse // Add bogus null use to keep node alive - public <N extends Node> N keep() { return addUse(null); } + public <N extends Node> N keep() { addUse(null); return (N)this; } // Remove bogus null. public <N extends Node> N unkeep() { delUse(null); return (N)this; } // ------------------------------------------------------------------------ diff --git a/chapter06/src/main/java/com/seaofnodes/simple/node/Node.java b/chapter06/src/main/java/com/seaofnodes/simple/node/Node.java index 97ba68ab..39e8ff8d 100644 --- a/chapter06/src/main/java/com/seaofnodes/simple/node/Node.java +++ b/chapter06/src/main/java/com/seaofnodes/simple/node/Node.java @@ -189,7 +189,7 @@ public abstract class Node { } // Breaks the edge invariants, used temporarily - protected <N extends Node> N addUse(Node n) { _outputs.add(n); return (N)this; } + protected <N extends Node> void addUse(N n) { _outputs.add(n); } // Remove node 'use' from 'def's (i.e. our) output list, by compressing the list in-place. // Return true if the output list is empty afterward. @@ -227,7 +227,7 @@ public abstract class Node { // Shortcuts to stop DCE mid-parse // Add bogus null use to keep node alive - public <N extends Node> N keep() { return addUse(null); } + public <N extends Node> N keep() { addUse(null); return (N)this; } // Remove bogus null. public <N extends Node> N unkeep() { delUse(null); return (N)this; } // ------------------------------------------------------------------------ diff --git a/chapter07/src/main/java/com/seaofnodes/simple/node/Node.java b/chapter07/src/main/java/com/seaofnodes/simple/node/Node.java index 35b07781..dade7525 100644 --- a/chapter07/src/main/java/com/seaofnodes/simple/node/Node.java +++ b/chapter07/src/main/java/com/seaofnodes/simple/node/Node.java @@ -222,7 +222,7 @@ public abstract class Node { } // Breaks the edge invariants, used temporarily - protected <N extends Node> N addUse(Node n) { _outputs.add(n); return (N)this; } + protected <N extends Node> void addUse(N n) { _outputs.add(n); } // Remove node 'use' from 'def's (i.e. our) output list, by compressing the list in-place. // Return true if the output list is empty afterward. @@ -260,7 +260,7 @@ public abstract class Node { // Shortcuts to stop DCE mid-parse // Add bogus null use to keep node alive - public <N extends Node> N keep() { return addUse(null); } + public <N extends Node> N keep() { addUse(null); return (N)this; } // Remove bogus null. public <N extends Node> N unkeep() { delUse(null); return (N)this; } diff --git a/chapter08/src/main/java/com/seaofnodes/simple/node/Node.java b/chapter08/src/main/java/com/seaofnodes/simple/node/Node.java index 2d6d5ad5..ce847453 100644 --- a/chapter08/src/main/java/com/seaofnodes/simple/node/Node.java +++ b/chapter08/src/main/java/com/seaofnodes/simple/node/Node.java @@ -224,7 +224,7 @@ public abstract class Node { } // Breaks the edge invariants, used temporarily - protected <N extends Node> N addUse(Node n) { _outputs.add(n); return (N)this; } + protected <N extends Node> void addUse(N n) { _outputs.add(n); } // Remove node 'use' from 'def's (i.e. our) output list, by compressing the list in-place. // Return true if the output list is empty afterward. @@ -262,7 +262,7 @@ public abstract class Node { // Shortcuts to stop DCE mid-parse // Add bogus null use to keep node alive - public <N extends Node> N keep() { return addUse(null); } + public <N extends Node> N keep() { addUse(null); return (N)this; } // Remove bogus null. public <N extends Node> N unkeep() { delUse(null); return (N)this; } diff --git a/chapter09/src/main/java/com/seaofnodes/simple/node/Node.java b/chapter09/src/main/java/com/seaofnodes/simple/node/Node.java index 5eb9c076..2f477ec4 100644 --- a/chapter09/src/main/java/com/seaofnodes/simple/node/Node.java +++ b/chapter09/src/main/java/com/seaofnodes/simple/node/Node.java @@ -234,7 +234,7 @@ public abstract class Node { } // Breaks the edge invariants, used temporarily - protected <N extends Node> N addUse(Node n) { _outputs.add(n); return (N)this; } + protected <N extends Node> void addUse(N n) { _outputs.add(n); } // Remove node 'use' from 'def's (i.e. our) output list, by compressing the list in-place. // Return true if the output list is empty afterward. @@ -281,7 +281,7 @@ public abstract class Node { // Shortcuts to stop DCE mid-parse // Add bogus null use to keep node alive - public <N extends Node> N keep() { return addUse(null); } + public <N extends Node> N keep() { addUse(null); return (N)this; } // Remove bogus null. public <N extends Node> N unkeep() { delUse(null); return (N)this; } diff --git a/chapter10/src/main/java/com/seaofnodes/simple/node/Node.java b/chapter10/src/main/java/com/seaofnodes/simple/node/Node.java index bb698860..c4889231 100644 --- a/chapter10/src/main/java/com/seaofnodes/simple/node/Node.java +++ b/chapter10/src/main/java/com/seaofnodes/simple/node/Node.java @@ -207,7 +207,7 @@ public abstract class Node { } // Breaks the edge invariants, used temporarily - protected <N extends Node> N addUse(Node n) { _outputs.add(n); return (N)this; } + protected <N extends Node> void addUse(N n) { _outputs.add(n); } // Remove node 'use' from 'def's (i.e. our) output list, by compressing the list in-place. // Return true if the output list is empty afterward. @@ -254,12 +254,9 @@ public abstract class Node { // Shortcuts to stop DCE mid-parse // Add bogus null use to keep node alive - public <N extends Node> N keep() { return addUse(null); } + public <N extends Node> N keep() { addUse(null); return (N)this; } // Remove bogus null. - public <N extends Node> N unkeep() { - delUse(null); - return (N)this; - } + public <N extends Node> N unkeep() { delUse(null); return (N)this; } // Test "keep" status public boolean iskeep() { return Utils.find(_outputs,null) != -1; } diff --git a/chapter11/src/main/java/com/seaofnodes/simple/node/Node.java b/chapter11/src/main/java/com/seaofnodes/simple/node/Node.java index fc49ad6a..e095fbfc 100644 --- a/chapter11/src/main/java/com/seaofnodes/simple/node/Node.java +++ b/chapter11/src/main/java/com/seaofnodes/simple/node/Node.java @@ -207,7 +207,7 @@ public abstract class Node implements OutNode { } // Breaks the edge invariants, used temporarily - protected <N extends Node> N addUse(Node n) { _outputs.add(n); return (N)this; } + protected <N extends Node> void addUse(N n) { _outputs.add(n); } // Remove node 'use' from 'def's (i.e. our) output list, by compressing the list in-place. // Return true if the output list is empty afterward. @@ -254,12 +254,9 @@ public abstract class Node implements OutNode { // Shortcuts to stop DCE mid-parse // Add bogus null use to keep node alive - public <N extends Node> N keep() { return addUse(null); } + public <N extends Node> N keep() { addUse(null); return (N)this; } // Remove bogus null. - public <N extends Node> N unkeep() { - delUse(null); - return (N)this; - } + public <N extends Node> N unkeep() { delUse(null); return (N)this; } // Test "keep" status public boolean iskeep() { return Utils.find(_outputs,null) != -1; } diff --git a/chapter12/src/main/java/com/seaofnodes/simple/node/Node.java b/chapter12/src/main/java/com/seaofnodes/simple/node/Node.java index 52282737..3e77f1db 100644 --- a/chapter12/src/main/java/com/seaofnodes/simple/node/Node.java +++ b/chapter12/src/main/java/com/seaofnodes/simple/node/Node.java @@ -207,7 +207,7 @@ public abstract class Node implements OutNode { } // Breaks the edge invariants, used temporarily - protected <N extends Node> N addUse(Node n) { _outputs.add(n); return (N)this; } + protected <N extends Node> void addUse(N n) { _outputs.add(n); } // Remove node 'use' from 'def's (i.e. our) output list, by compressing the list in-place. // Return true if the output list is empty afterward. @@ -255,12 +255,9 @@ public abstract class Node implements OutNode { // Shortcuts to stop DCE mid-parse // Add bogus null use to keep node alive - public <N extends Node> N keep() { return addUse(null); } + public <N extends Node> N keep() { addUse(null); return (N)this; } // Remove bogus null. - public <N extends Node> N unkeep() { - delUse(null); - return (N)this; - } + public <N extends Node> N unkeep() { delUse(null); return (N)this; } // Test "keep" status public boolean iskeep() { return Utils.find(_outputs,null) != -1; } diff --git a/chapter13/src/main/java/com/seaofnodes/simple/node/Node.java b/chapter13/src/main/java/com/seaofnodes/simple/node/Node.java index d846fcef..766349ce 100644 --- a/chapter13/src/main/java/com/seaofnodes/simple/node/Node.java +++ b/chapter13/src/main/java/com/seaofnodes/simple/node/Node.java @@ -207,7 +207,7 @@ public abstract class Node implements OutNode { } // Breaks the edge invariants, used temporarily - protected <N extends Node> N addUse(Node n) { _outputs.add(n); return (N)this; } + protected <N extends Node> void addUse(N n) { _outputs.add(n); } // Remove node 'use' from 'def's (i.e. our) output list, by compressing the list in-place. // Return true if the output list is empty afterward. @@ -255,12 +255,9 @@ public abstract class Node implements OutNode { // Shortcuts to stop DCE mid-parse // Add bogus null use to keep node alive - public <N extends Node> N keep() { return addUse(null); } + public <N extends Node> N keep() { addUse(null); return (N)this; } // Remove bogus null. - public <N extends Node> N unkeep() { - delUse(null); - return (N)this; - } + public <N extends Node> N unkeep() { delUse(null); return (N)this; } // Test "keep" status public boolean iskeep() { return Utils.find(_outputs,null) != -1; } diff --git a/chapter14/src/main/java/com/seaofnodes/simple/node/Node.java b/chapter14/src/main/java/com/seaofnodes/simple/node/Node.java index 96b569b5..2ef37518 100644 --- a/chapter14/src/main/java/com/seaofnodes/simple/node/Node.java +++ b/chapter14/src/main/java/com/seaofnodes/simple/node/Node.java @@ -205,7 +205,7 @@ public abstract class Node implements OutNode { } // Breaks the edge invariants, used temporarily - protected <N extends Node> N addUse(Node n) { _outputs.add(n); return (N)this; } + protected <N extends Node> void addUse(N n) { _outputs.add(n); } // Remove node 'use' from 'def's (i.e. our) output list, by compressing the list in-place. // Return true if the output list is empty afterward. @@ -253,12 +253,9 @@ public abstract class Node implements OutNode { // Shortcuts to stop DCE mid-parse // Add bogus null use to keep node alive - public <N extends Node> N keep() { return addUse(null); } + public <N extends Node> N keep() { addUse(null); return (N)this; } // Remove bogus null. - public <N extends Node> N unkeep() { - delUse(null); - return (N)this; - } + public <N extends Node> N unkeep() { delUse(null); return (N)this; } // Test "keep" status public boolean iskeep() { return Utils.find(_outputs,null) != -1; } diff --git a/chapter15/src/main/java/com/seaofnodes/simple/node/Node.java b/chapter15/src/main/java/com/seaofnodes/simple/node/Node.java index 461f153d..7c22a50e 100644 --- a/chapter15/src/main/java/com/seaofnodes/simple/node/Node.java +++ b/chapter15/src/main/java/com/seaofnodes/simple/node/Node.java @@ -204,7 +204,7 @@ public abstract class Node implements OutNode { } // Breaks the edge invariants, used temporarily - protected <N extends Node> N addUse(Node n) { _outputs.add(n); return (N)this; } + protected <N extends Node> void addUse(N n) { _outputs.add(n); } // Remove node 'use' from 'def's (i.e. our) output list, by compressing the list in-place. // Return true if the output list is empty afterward. @@ -252,12 +252,9 @@ public abstract class Node implements OutNode { // Shortcuts to stop DCE mid-parse // Add bogus null use to keep node alive - public <N extends Node> N keep() { return addUse(null); } + public <N extends Node> N keep() { addUse(null); return (N)this; } // Remove bogus null. - public <N extends Node> N unkeep() { - delUse(null); - return (N)this; - } + public <N extends Node> N unkeep() { delUse(null); return (N)this; } // Test "keep" status public boolean iskeep() { return Utils.find(_outputs,null) != -1; } diff --git a/chapter16/src/main/java/com/seaofnodes/simple/node/Node.java b/chapter16/src/main/java/com/seaofnodes/simple/node/Node.java index 462a403c..e1e6283a 100644 --- a/chapter16/src/main/java/com/seaofnodes/simple/node/Node.java +++ b/chapter16/src/main/java/com/seaofnodes/simple/node/Node.java @@ -211,7 +211,7 @@ public abstract class Node implements OutNode { } // Breaks the edge invariants, used temporarily - protected <N extends Node> N addUse(Node n) { _outputs.add(n); return (N)this; } + protected <N extends Node> void addUse(N n) { _outputs.add(n); } // Remove node 'use' from 'def's (i.e. our) output list, by compressing the list in-place. // Return true if the output list is empty afterward. @@ -259,12 +259,9 @@ public abstract class Node implements OutNode { // Shortcuts to stop DCE mid-parse // Add bogus null use to keep node alive - public <N extends Node> N keep() { return addUse(null); } + public <N extends Node> N keep() { addUse(null); return (N)this; } // Remove bogus null. - public <N extends Node> N unkeep() { - delUse(null); - return (N)this; - } + public <N extends Node> N unkeep() { delUse(null); return (N)this; } // Test "keep" status public boolean iskeep() { return _outputs.find(null) != -1; } diff --git a/chapter17/src/main/java/com/seaofnodes/simple/node/Node.java b/chapter17/src/main/java/com/seaofnodes/simple/node/Node.java index 3827fdac..09180899 100644 --- a/chapter17/src/main/java/com/seaofnodes/simple/node/Node.java +++ b/chapter17/src/main/java/com/seaofnodes/simple/node/Node.java @@ -211,7 +211,7 @@ public abstract class Node implements OutNode { } // Breaks the edge invariants, used temporarily - protected <N extends Node> N addUse(Node n) { _outputs.add(n); return (N)this; } + protected <N extends Node> void addUse(N n) { _outputs.add(n); } // Remove node 'use' from 'def's (i.e. our) output list, by compressing the list in-place. // Return true if the output list is empty afterward. @@ -259,12 +259,9 @@ public abstract class Node implements OutNode { // Shortcuts to stop DCE mid-parse // Add bogus null use to keep node alive - public <N extends Node> N keep() { return addUse(null); } + public <N extends Node> N keep() { addUse(null); return (N)this; } // Remove bogus null. - public <N extends Node> N unkeep() { - delUse(null); - return (N)this; - } + public <N extends Node> N unkeep() { delUse(null); return (N)this; } // Test "keep" status public boolean iskeep() { return _outputs.find(null) != -1; } public void unkill() { diff --git a/chapter18/src/main/java/com/seaofnodes/simple/node/Node.java b/chapter18/src/main/java/com/seaofnodes/simple/node/Node.java index 4c6cce16..c9369742 100644 --- a/chapter18/src/main/java/com/seaofnodes/simple/node/Node.java +++ b/chapter18/src/main/java/com/seaofnodes/simple/node/Node.java @@ -212,7 +212,7 @@ public abstract class Node { } // Breaks the edge invariants, used temporarily - protected <N extends Node> N addUse(Node n) { _outputs.add(n); return (N)this; } + protected <N extends Node> void addUse(N n) { _outputs.add(n); } // Remove node 'use' from 'def's (i.e. our) output list, by compressing the list in-place. // Return true if the output list is empty afterward. @@ -260,12 +260,9 @@ public abstract class Node { // Shortcuts to stop DCE mid-parse // Add bogus null use to keep node alive - public <N extends Node> N keep() { return addUse(null); } + public <N extends Node> N keep() { addUse(null); return (N)this; } // Remove bogus null. - public <N extends Node> N unkeep() { - delUse(null); - return (N)this; - } + public <N extends Node> N unkeep() { delUse(null); return (N)this; } // Test "keep" status public boolean iskeep() { return _outputs.find(null) != -1; } public void unkill() { diff --git a/chapter19/src/main/java/com/seaofnodes/simple/node/Node.java b/chapter19/src/main/java/com/seaofnodes/simple/node/Node.java index bbf1ebe9..5d099785 100644 --- a/chapter19/src/main/java/com/seaofnodes/simple/node/Node.java +++ b/chapter19/src/main/java/com/seaofnodes/simple/node/Node.java @@ -221,7 +221,7 @@ public abstract class Node { } // Breaks the edge invariants, used temporarily - protected <N extends Node> N addUse(Node n) { _outputs.add(n); return (N)this; } + protected <N extends Node> void addUse(N n) { _outputs.add(n); } // Remove node 'use' from 'def's (i.e. our) output list, by compressing the list in-place. // Return true if the output list is empty afterward. @@ -267,12 +267,9 @@ public abstract class Node { // Shortcuts to stop DCE mid-parse // Add bogus null use to keep node alive - public <N extends Node> N keep() { return addUse(null); } + public <N extends Node> N keep() { addUse(null); return (N)this; } // Remove bogus null. - public <N extends Node> N unkeep() { - delUse(null); - return (N)this; - } + public <N extends Node> N unkeep() { delUse(null); return (N)this; } // Test "keep" status public boolean iskeep() { return _outputs.find(null) != -1; } public void unkill() { diff --git a/chapter20/src/main/java/com/seaofnodes/simple/node/Node.java b/chapter20/src/main/java/com/seaofnodes/simple/node/Node.java index b3d6c94e..e8043854 100644 --- a/chapter20/src/main/java/com/seaofnodes/simple/node/Node.java +++ b/chapter20/src/main/java/com/seaofnodes/simple/node/Node.java @@ -226,7 +226,7 @@ public abstract class Node { } // Breaks the edge invariants, used temporarily - protected <N extends Node> N addUse(Node n) { _outputs.add(n); return (N)this; } + protected <N extends Node> void addUse(N n) { _outputs.add(n); } // Remove node 'use' from 'def's (i.e. our) output list, by compressing the list in-place. // Return true if the output list is empty afterward. @@ -272,12 +272,9 @@ public abstract class Node { // Shortcuts to stop DCE mid-parse // Add bogus null use to keep node alive - public <N extends Node> N keep() { return addUse(null); } + public <N extends Node> N keep() { addUse(null); return (N)this; } // Remove bogus null. - public <N extends Node> N unkeep() { - delUse(null); - return (N)this; - } + public <N extends Node> N unkeep() { delUse(null); return (N)this; } // Test "keep" status public boolean iskeep() { return _outputs.find(null) != -1; } public void unkill() { diff --git a/chapter21/src/main/java/com/seaofnodes/simple/node/Node.java b/chapter21/src/main/java/com/seaofnodes/simple/node/Node.java index c0c2e606..4ca95cae 100644 --- a/chapter21/src/main/java/com/seaofnodes/simple/node/Node.java +++ b/chapter21/src/main/java/com/seaofnodes/simple/node/Node.java @@ -226,8 +226,7 @@ public abstract class Node implements Cloneable { } // Breaks the edge invariants, used temporarily - @SuppressWarnings("unchecked") - protected <N extends Node> N addUse(Node n) { _outputs.add(n); return (N)this; } + protected <N extends Node> void addUse(N n) { _outputs.add(n); } // Remove node 'use' from 'def's (i.e. our) output list, by compressing the list in-place. // Return true if the output list is empty afterward. @@ -282,13 +281,11 @@ public abstract class Node implements Cloneable { // Shortcuts to stop DCE mid-parse // Add bogus null use to keep node alive - public <N extends Node> N keep() { return addUse(null); } + @SuppressWarnings("unchecked") + public <N extends Node> N keep() { addUse(null); return (N)this; } // Remove bogus null. @SuppressWarnings("unchecked") - public <N extends Node> N unkeep() { - delUse(null); - return (N)this; - } + public <N extends Node> N unkeep() { delUse(null); return (N)this; } // Test "keep" status public boolean iskeep() { return _outputs.find(null) != -1; } public void unkill() { diff --git a/chapter22/src/main/java/com/seaofnodes/simple/node/Node.java b/chapter22/src/main/java/com/seaofnodes/simple/node/Node.java index eadb984a..064f295f 100644 --- a/chapter22/src/main/java/com/seaofnodes/simple/node/Node.java +++ b/chapter22/src/main/java/com/seaofnodes/simple/node/Node.java @@ -226,8 +226,7 @@ public abstract class Node implements Cloneable { } // Breaks the edge invariants, used temporarily - @SuppressWarnings("unchecked") - protected <N extends Node> N addUse(Node n) { _outputs.add(n); return (N)this; } + protected <N extends Node> void addUse(N n) { _outputs.add(n); } // Remove node 'use' from 'def's (i.e. our) output list, by compressing the list in-place. // Return true if the output list is empty afterward. @@ -282,13 +281,11 @@ public abstract class Node implements Cloneable { // Shortcuts to stop DCE mid-parse // Add bogus null use to keep node alive - public <N extends Node> N keep() { return addUse(null); } + @SuppressWarnings("unchecked") + public <N extends Node> N keep() { addUse(null); return (N)this; } // Remove bogus null. @SuppressWarnings("unchecked") - public <N extends Node> N unkeep() { - delUse(null); - return (N)this; - } + public <N extends Node> N unkeep() { delUse(null); return (N)this; } // Test "keep" status public boolean iskeep() { return _outputs.find(null) != -1; } public void unkill() { diff --git a/chapter23/src/main/java/com/seaofnodes/simple/node/Node.java b/chapter23/src/main/java/com/seaofnodes/simple/node/Node.java index 5e5be196..8981ab0d 100644 --- a/chapter23/src/main/java/com/seaofnodes/simple/node/Node.java +++ b/chapter23/src/main/java/com/seaofnodes/simple/node/Node.java @@ -228,8 +228,7 @@ public abstract class Node implements Cloneable { } // Breaks the edge invariants, used temporarily - @SuppressWarnings("unchecked") - protected <N extends Node> N addUse(Node n) { _outputs.add(n); return (N)this; } + protected <N extends Node> void addUse(N n) { _outputs.add(n); } // Remove node 'use' from 'def's (i.e. our) output list, by compressing the list in-place. // Return true if the output list is empty afterward. @@ -284,13 +283,11 @@ public abstract class Node implements Cloneable { // Shortcuts to stop DCE mid-parse // Add bogus null use to keep node alive - public <N extends Node> N keep() { return addUse(null); } + @SuppressWarnings("unchecked") + public <N extends Node> N keep() { addUse(null); return (N)this; } // Remove bogus null. @SuppressWarnings("unchecked") - public <N extends Node> N unkeep() { - delUse(null); - return (N)this; - } + public <N extends Node> N unkeep() { delUse(null); return (N)this; } // Test "keep" status public boolean iskeep() { return _outputs.find(null) != -1; } public void unkill() { diff --git a/chapter24/src/main/java/com/seaofnodes/simple/node/Node.java b/chapter24/src/main/java/com/seaofnodes/simple/node/Node.java index 1979dcd1..458a3407 100644 --- a/chapter24/src/main/java/com/seaofnodes/simple/node/Node.java +++ b/chapter24/src/main/java/com/seaofnodes/simple/node/Node.java @@ -229,8 +229,7 @@ public abstract class Node implements Cloneable { } // Breaks the edge invariants, used temporarily - @SuppressWarnings("unchecked") - protected <N extends Node> N addUse(Node n) { _outputs.add(n); return (N)this; } + protected <N extends Node> void addUse(N n) { _outputs.add(n); } // Remove node 'use' from 'def's (i.e. our) output list, by compressing the list in-place. // Return true if the output list is empty afterward. @@ -285,13 +284,11 @@ public abstract class Node implements Cloneable { // Shortcuts to stop DCE mid-parse // Add bogus null use to keep node alive - public <N extends Node> N keep() { return addUse(null); } + @SuppressWarnings("unchecked") + public <N extends Node> N keep() { addUse(null); return (N)this; } // Remove bogus null. @SuppressWarnings("unchecked") - public <N extends Node> N unkeep() { - delUse(null); - return (N)this; - } + public <N extends Node> N unkeep() { delUse(null); return (N)this; } // Test "keep" status public boolean iskeep() { return _outputs.find(null) != -1; } public void unkill() { |
