From d2af58b0f68ebfbba2be7e7679efec6c8c0af12f Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Thu, 9 Feb 2017 11:50:31 -0500 Subject: Update --- BJC-Utils2/src/main/java/bjc/utils/data/LazyPair.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'BJC-Utils2/src/main/java/bjc/utils/data/LazyPair.java') diff --git a/BJC-Utils2/src/main/java/bjc/utils/data/LazyPair.java b/BJC-Utils2/src/main/java/bjc/utils/data/LazyPair.java index 53428d9..f20139e 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/data/LazyPair.java +++ b/BJC-Utils2/src/main/java/bjc/utils/data/LazyPair.java @@ -14,8 +14,6 @@ import java.util.function.Supplier; * @param * The type on the right side of the pair * - * @TODO ensure we don't have any issues with values being materialized - * more than once */ public class LazyPair implements IPair { @@ -54,6 +52,7 @@ public class LazyPair */ public LazyPair(Supplier leftSupp, Supplier rightSupp) { + // Use single suppliers to catch double-instantiation bugs leftSupplier = new SingleSupplier<>(leftSupp); rightSupplier = new SingleSupplier<>(rightSupp); @@ -63,14 +62,12 @@ public class LazyPair @Override public IPair bind( - BiFunction> binder) { + BiFunction> binder) { return new BoundLazyPair<>(leftSupplier, rightSupplier, binder); } @Override - public IPair bindLeft( - Function> leftBinder) { + public IPair bindLeft(Function> leftBinder) { Supplier leftSupp = () -> { if (leftMaterialized) { return leftValue; -- cgit v1.2.3