From f39c54f71e8e9f053b7efb6e69b1429944badba4 Mon Sep 17 00:00:00 2001 From: Peter Dettman Date: Tue, 11 Apr 2023 14:47:22 +0700 Subject: Platform guards for ReadOnlySet --- crypto/src/util/collections/CollectionUtilities.cs | 2 ++ crypto/src/util/collections/ReadOnlySet.cs | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/crypto/src/util/collections/CollectionUtilities.cs b/crypto/src/util/collections/CollectionUtilities.cs index a1fb0e949..6f94c4409 100644 --- a/crypto/src/util/collections/CollectionUtilities.cs +++ b/crypto/src/util/collections/CollectionUtilities.cs @@ -75,10 +75,12 @@ namespace Org.BouncyCastle.Utilities.Collections return new ReadOnlyListProxy(l); } +#if NETCOREAPP1_0_OR_GREATER || NET40_OR_GREATER || NETSTANDARD1_0_OR_GREATER public static ISet ReadOnly(ISet s) { return new ReadOnlySetProxy(s); } +#endif public static bool Remove(IDictionary d, K k, out V v) { diff --git a/crypto/src/util/collections/ReadOnlySet.cs b/crypto/src/util/collections/ReadOnlySet.cs index 36c198f07..d77494847 100644 --- a/crypto/src/util/collections/ReadOnlySet.cs +++ b/crypto/src/util/collections/ReadOnlySet.cs @@ -1,10 +1,15 @@ using System; +using System.Collections; using System.Collections.Generic; namespace Org.BouncyCastle.Utilities.Collections { internal abstract class ReadOnlySet +#if NETCOREAPP1_0_OR_GREATER || NET40_OR_GREATER || NETSTANDARD1_0_OR_GREATER : ISet +#else + : ICollection, IEnumerable, IEnumerable +#endif { System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { @@ -35,6 +40,7 @@ namespace Org.BouncyCastle.Utilities.Collections public abstract bool Overlaps(IEnumerable other); } +#if NETCOREAPP1_0_OR_GREATER || NET40_OR_GREATER || NETSTANDARD1_0_OR_GREATER internal class ReadOnlySetProxy : ReadOnlySet { @@ -58,4 +64,5 @@ namespace Org.BouncyCastle.Utilities.Collections public override bool IsSupersetOf(IEnumerable other) => m_target.IsSupersetOf(other); public override bool Overlaps(IEnumerable other) => m_target.Overlaps(other); } +#endif } -- cgit 1.4.1