From 117e22cdd0d6b20968fc39e2c8e1a7e6c73e9e73 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 4 Jun 2016 16:13:59 +0100 Subject: Use single instance of None --- Mammoth/Couscous/java/util/HashMap.cs | 2 +- Mammoth/Couscous/java/util/Optional.cs | 7 ++++++- Mammoth/Couscous/mammoth/internal/util/Casts.cs | 2 +- Mammoth/Couscous/mammoth/internal/util/Iterables.cs | 2 +- Mammoth/Couscous/mammoth/internal/util/Lists.cs | 2 +- 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/Mammoth/Couscous/java/util/HashMap.cs b/Mammoth/Couscous/java/util/HashMap.cs index 38e516e..10070fc 100644 --- a/Mammoth/Couscous/java/util/HashMap.cs +++ b/Mammoth/Couscous/java/util/HashMap.cs @@ -30,7 +30,7 @@ namespace Mammoth.Couscous.java.util { if (_dictionary.ContainsKey(key)) { return new Some(_dictionary[key]); } else { - return new None(); + return None.Instance; } } diff --git a/Mammoth/Couscous/java/util/Optional.cs b/Mammoth/Couscous/java/util/Optional.cs index f295688..b5be056 100644 --- a/Mammoth/Couscous/java/util/Optional.cs +++ b/Mammoth/Couscous/java/util/Optional.cs @@ -16,6 +16,11 @@ namespace Mammoth.Couscous.java.util } internal class None : Optional { + internal static readonly None Instance = new None(); + + private None() { + } + public bool isPresent() { return false; } @@ -92,7 +97,7 @@ namespace Mammoth.Couscous.java.util { internal static Optional empty() { - return new None(); + return None.Instance; } internal static Optional of(T value) diff --git a/Mammoth/Couscous/mammoth/internal/util/Casts.cs b/Mammoth/Couscous/mammoth/internal/util/Casts.cs index c342e20..29af07a 100644 --- a/Mammoth/Couscous/mammoth/internal/util/Casts.cs +++ b/Mammoth/Couscous/mammoth/internal/util/Casts.cs @@ -6,7 +6,7 @@ namespace Mammoth.Couscous.org.zwobble.mammoth.@internal.util { if (value is T) { return new Some((T) value); } else { - return new None(); + return None.Instance; } } } diff --git a/Mammoth/Couscous/mammoth/internal/util/Iterables.cs b/Mammoth/Couscous/mammoth/internal/util/Iterables.cs index b1e1477..ac571bc 100644 --- a/Mammoth/Couscous/mammoth/internal/util/Iterables.cs +++ b/Mammoth/Couscous/mammoth/internal/util/Iterables.cs @@ -25,7 +25,7 @@ namespace Mammoth.Couscous.org.zwobble.mammoth.@internal.util return new Some(value); } } - return new None(); + return None.Instance; } internal static Iterable lazyFilter(Iterable iterable, Predicate predicate) { diff --git a/Mammoth/Couscous/mammoth/internal/util/Lists.cs b/Mammoth/Couscous/mammoth/internal/util/Lists.cs index b914a34..db18a21 100644 --- a/Mammoth/Couscous/mammoth/internal/util/Lists.cs +++ b/Mammoth/Couscous/mammoth/internal/util/Lists.cs @@ -50,7 +50,7 @@ namespace Mammoth.Couscous.org.zwobble.mammoth.@internal.util { internal static Optional tryGetLast(List list) { if (list.isEmpty()) { - return new None(); + return None.Instance; } else { return new Some(list.get(list.size() - 1)); } -- cgit v1.2.3