diff --git a/src/StackExchange.Redis/APITypes/GeoSearchShape.cs b/src/StackExchange.Redis/APITypes/GeoSearchShape.cs
index 7d85c3bfa..f2879ccc1 100644
--- a/src/StackExchange.Redis/APITypes/GeoSearchShape.cs
+++ b/src/StackExchange.Redis/APITypes/GeoSearchShape.cs
@@ -46,12 +46,12 @@ public GeoSearchCircle(double radius, GeoUnit unit = GeoUnit.Meters) : base(unit
_radius = radius;
}
- internal override int ArgCount => 3;
+ internal sealed override int ArgCount => 3;
///
/// Gets the s for this shape.
///
- internal override void AddArgs(List args)
+ internal sealed override void AddArgs(List args)
{
args.Add(RedisLiterals.BYRADIUS);
args.Add(_radius);
@@ -80,9 +80,9 @@ public GeoSearchBox(double height, double width, GeoUnit unit = GeoUnit.Meters)
_width = width;
}
- internal override int ArgCount => 4;
+ internal sealed override int ArgCount => 4;
- internal override void AddArgs(List args)
+ internal sealed override void AddArgs(List args)
{
args.Add(RedisLiterals.BYBOX);
args.Add(_width);
diff --git a/src/StackExchange.Redis/ClientInfo.cs b/src/StackExchange.Redis/ClientInfo.cs
index c5ce0d0bf..d743affff 100644
--- a/src/StackExchange.Redis/ClientInfo.cs
+++ b/src/StackExchange.Redis/ClientInfo.cs
@@ -287,7 +287,7 @@ private static void AddFlag(ref ClientFlags value, string raw, ClientFlags toAdd
if (raw.IndexOf(token) >= 0) value |= toAdd;
}
- private class ClientInfoProcessor : ResultProcessor
+ private sealed class ClientInfoProcessor : ResultProcessor
{
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
diff --git a/src/StackExchange.Redis/CommandTrace.cs b/src/StackExchange.Redis/CommandTrace.cs
index aedd05fea..a61499f0c 100644
--- a/src/StackExchange.Redis/CommandTrace.cs
+++ b/src/StackExchange.Redis/CommandTrace.cs
@@ -69,7 +69,7 @@ internal CommandTrace(long uniqueId, long time, long duration, RedisValue[] argu
return BaseUrl + encoded0;
}
- private class CommandTraceProcessor : ResultProcessor
+ private sealed class CommandTraceProcessor : ResultProcessor
{
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
diff --git a/src/StackExchange.Redis/Condition.cs b/src/StackExchange.Redis/Condition.cs
index 308c87c11..19e8b2863 100644
--- a/src/StackExchange.Redis/Condition.cs
+++ b/src/StackExchange.Redis/Condition.cs
@@ -384,7 +384,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
return false;
}
- private class ConditionMessage : Message.CommandKeyBase
+ private sealed class ConditionMessage : Message.CommandKeyBase
{
public readonly Condition Condition;
private readonly RedisValue value;
@@ -425,7 +425,7 @@ protected override void WriteImpl(PhysicalConnection physical)
}
}
- internal class ExistsCondition : Condition
+ internal sealed class ExistsCondition : Condition
{
private readonly bool expectedResult;
private readonly RedisValue expectedValue;
@@ -501,7 +501,7 @@ internal override bool TryValidate(in RawResult result, out bool value)
}
}
- internal class EqualsCondition : Condition
+ internal sealed class EqualsCondition : Condition
{
internal override Condition MapKeys(Func map) =>
new EqualsCondition(map(key), type, memberName, expectedEqual, expectedValue);
@@ -535,7 +535,7 @@ public override string ToString() =>
internal override void CheckCommands(CommandMap commandMap) => commandMap.AssertAvailable(cmd);
- internal sealed override IEnumerable CreateMessages(int db, IResultBox? resultBox)
+ internal override IEnumerable CreateMessages(int db, IResultBox? resultBox)
{
yield return Message.Create(db, CommandFlags.None, RedisCommand.WATCH, key);
@@ -580,7 +580,7 @@ internal override bool TryValidate(in RawResult result, out bool value)
}
}
- internal class ListCondition : Condition
+ internal sealed class ListCondition : Condition
{
internal override Condition MapKeys(Func map) =>
new ListCondition(map(key), index, expectedResult, expectedValue);
@@ -606,7 +606,7 @@ public override string ToString() =>
internal override void CheckCommands(CommandMap commandMap) => commandMap.AssertAvailable(RedisCommand.LINDEX);
- internal sealed override IEnumerable CreateMessages(int db, IResultBox? resultBox)
+ internal override IEnumerable CreateMessages(int db, IResultBox? resultBox)
{
yield return Message.Create(db, CommandFlags.None, RedisCommand.WATCH, key);
@@ -643,7 +643,7 @@ internal override bool TryValidate(in RawResult result, out bool value)
}
}
- internal class LengthCondition : Condition
+ internal sealed class LengthCondition : Condition
{
internal override Condition MapKeys(Func map) =>
new LengthCondition(map(key), type, compareToResult, expectedLength);
@@ -679,7 +679,7 @@ public LengthCondition(in RedisKey key, RedisType type, int compareToResult, lon
internal override void CheckCommands(CommandMap commandMap) => commandMap.AssertAvailable(cmd);
- internal sealed override IEnumerable CreateMessages(int db, IResultBox? resultBox)
+ internal override IEnumerable CreateMessages(int db, IResultBox? resultBox)
{
yield return Message.Create(db, CommandFlags.None, RedisCommand.WATCH, key);
@@ -708,7 +708,7 @@ internal override bool TryValidate(in RawResult result, out bool value)
}
}
- internal class SortedSetRangeLengthCondition : Condition
+ internal sealed class SortedSetRangeLengthCondition : Condition
{
internal override Condition MapKeys(Func map) =>
new SortedSetRangeLengthCondition(map(key), min, max, compareToResult, expectedLength);
@@ -736,7 +736,7 @@ public override string ToString() =>
internal override void CheckCommands(CommandMap commandMap) => commandMap.AssertAvailable(RedisCommand.ZCOUNT);
- internal sealed override IEnumerable CreateMessages(int db, IResultBox? resultBox)
+ internal override IEnumerable CreateMessages(int db, IResultBox? resultBox)
{
yield return Message.Create(db, CommandFlags.None, RedisCommand.WATCH, key);
@@ -765,7 +765,7 @@ internal override bool TryValidate(in RawResult result, out bool value)
}
}
- internal class SortedSetScoreCondition : Condition
+ internal sealed class SortedSetScoreCondition : Condition
{
internal override Condition MapKeys(Func map) =>
new SortedSetScoreCondition(map(key), sortedSetScore, expectedEqual, expectedValue);
@@ -792,7 +792,7 @@ public override string ToString() =>
internal override void CheckCommands(CommandMap commandMap) => commandMap.AssertAvailable(RedisCommand.ZCOUNT);
- internal sealed override IEnumerable CreateMessages(int db, IResultBox? resultBox)
+ internal override IEnumerable CreateMessages(int db, IResultBox? resultBox)
{
yield return Message.Create(db, CommandFlags.None, RedisCommand.WATCH, key);
diff --git a/src/StackExchange.Redis/Configuration/LoggingTunnel.cs b/src/StackExchange.Redis/Configuration/LoggingTunnel.cs
index d61442071..0eca972b8 100644
--- a/src/StackExchange.Redis/Configuration/LoggingTunnel.cs
+++ b/src/StackExchange.Redis/Configuration/LoggingTunnel.cs
@@ -277,7 +277,7 @@ public static void LogToDirectory(ConfigurationOptions options, string path)
options.Tunnel = tunnel;
}
- private class DirectoryLoggingTunnel : LoggingTunnel
+ private sealed class DirectoryLoggingTunnel : LoggingTunnel
{
private readonly string path;
private int _nextIndex = -1;
diff --git a/src/StackExchange.Redis/CursorEnumerable.cs b/src/StackExchange.Redis/CursorEnumerable.cs
index e526eceaa..921d83ce0 100644
--- a/src/StackExchange.Redis/CursorEnumerable.cs
+++ b/src/StackExchange.Redis/CursorEnumerable.cs
@@ -344,7 +344,7 @@ public void Reset()
internal static CursorEnumerable From(RedisBase redis, ServerEndPoint? server, Task pending, int pageOffset)
=> new SingleBlockEnumerable(redis, server, pending, pageOffset);
- private class SingleBlockEnumerable : CursorEnumerable
+ private sealed class SingleBlockEnumerable : CursorEnumerable
{
private readonly Task _pending;
public SingleBlockEnumerable(RedisBase redis, ServerEndPoint? server, Task pending, int pageOffset)
diff --git a/src/StackExchange.Redis/Message.cs b/src/StackExchange.Redis/Message.cs
index fd75585a5..9472b6db0 100644
--- a/src/StackExchange.Redis/Message.cs
+++ b/src/StackExchange.Redis/Message.cs
@@ -1627,7 +1627,7 @@ protected override void WriteImpl(PhysicalConnection physical)
public override int ArgCount => 0;
}
- private class CommandSlotValuesMessage : Message
+ private sealed class CommandSlotValuesMessage : Message
{
private readonly int slot;
private readonly RedisValue[] values;
diff --git a/src/StackExchange.Redis/RedisBatch.cs b/src/StackExchange.Redis/RedisBatch.cs
index 0a4c888f2..0ef97f365 100644
--- a/src/StackExchange.Redis/RedisBatch.cs
+++ b/src/StackExchange.Redis/RedisBatch.cs
@@ -4,7 +4,7 @@
namespace StackExchange.Redis
{
- internal class RedisBatch : RedisDatabase, IBatch
+ internal sealed class RedisBatch : RedisDatabase, IBatch
{
private List? pending;
diff --git a/src/StackExchange.Redis/RedisDatabase.cs b/src/StackExchange.Redis/RedisDatabase.cs
index 5493f3ebd..ec325da7e 100644
--- a/src/StackExchange.Redis/RedisDatabase.cs
+++ b/src/StackExchange.Redis/RedisDatabase.cs
@@ -4931,7 +4931,7 @@ public Task SortedSetRemoveRangeByValueAsync(RedisKey key, RedisValue min,
return ExecuteAsync(msg, ResultProcessor.Int64);
}
- internal class ScanEnumerable : CursorEnumerable
+ internal sealed class ScanEnumerable : CursorEnumerable
{
private readonly RedisKey key;
private readonly RedisValue pattern;
@@ -5324,7 +5324,7 @@ private SortedSetScanResultProcessor() { }
=> SortedSetWithScores.TryParse(result, out SortedSetEntry[]? pairs, true, out count) ? pairs : null;
}
- private class StringGetWithExpiryMessage : Message.CommandKeyBase, IMultiMessage
+ private sealed class StringGetWithExpiryMessage : Message.CommandKeyBase, IMultiMessage
{
private readonly RedisCommand ttlCommand;
private IResultBox? box;
@@ -5368,7 +5368,7 @@ protected override void WriteImpl(PhysicalConnection physical)
public override int ArgCount => 1;
}
- private class StringGetWithExpiryProcessor : ResultProcessor
+ private sealed class StringGetWithExpiryProcessor : ResultProcessor
{
public static readonly ResultProcessor Default = new StringGetWithExpiryProcessor();
private StringGetWithExpiryProcessor() { }
diff --git a/src/StackExchange.Redis/RedisServer.cs b/src/StackExchange.Redis/RedisServer.cs
index 8810e1e2b..af734b0f5 100644
--- a/src/StackExchange.Redis/RedisServer.cs
+++ b/src/StackExchange.Redis/RedisServer.cs
@@ -889,7 +889,7 @@ private protected override Message CreateMessage(in RedisValue cursor)
private protected override ResultProcessor Processor => processor;
public static readonly ResultProcessor processor = new ScanResultProcessor();
- private class ScanResultProcessor : ResultProcessor
+ private sealed class ScanResultProcessor : ResultProcessor
{
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
diff --git a/src/StackExchange.Redis/RedisTransaction.cs b/src/StackExchange.Redis/RedisTransaction.cs
index 04d7293ac..f0a9600fa 100644
--- a/src/StackExchange.Redis/RedisTransaction.cs
+++ b/src/StackExchange.Redis/RedisTransaction.cs
@@ -6,7 +6,7 @@
namespace StackExchange.Redis
{
- internal class RedisTransaction : RedisDatabase, ITransaction
+ internal sealed class RedisTransaction : RedisDatabase, ITransaction
{
private List? _conditions;
private List? _pending;
@@ -169,7 +169,7 @@ private void QueueMessage(Message message)
return new TransactionMessage(Database, flags, cond, work);
}
- private class QueuedMessage : Message
+ private sealed class QueuedMessage : Message
{
public Message Wrapped { get; }
private volatile bool wasQueued;
@@ -197,7 +197,7 @@ public override int GetHashSlot(ServerSelectionStrategy serverSelectionStrategy)
=> Wrapped.GetHashSlot(serverSelectionStrategy);
}
- private class QueuedProcessor : ResultProcessor
+ private sealed class QueuedProcessor : ResultProcessor
{
public static readonly ResultProcessor Default = new QueuedProcessor();
@@ -216,7 +216,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
}
}
- private class TransactionMessage : Message, IMultiMessage
+ private sealed class TransactionMessage : Message, IMultiMessage
{
private readonly ConditionResult[] conditions;
@@ -465,7 +465,7 @@ private bool AreAllConditionsSatisfied(ConnectionMultiplexer multiplexer)
}
}
- private class TransactionProcessor : ResultProcessor
+ private sealed class TransactionProcessor : ResultProcessor
{
public static readonly TransactionProcessor Default = new();
diff --git a/src/StackExchange.Redis/ResultProcessor.cs b/src/StackExchange.Redis/ResultProcessor.cs
index 294d1f03b..67dd73173 100644
--- a/src/StackExchange.Redis/ResultProcessor.cs
+++ b/src/StackExchange.Redis/ResultProcessor.cs
@@ -1336,7 +1336,7 @@ private static string Normalize(string? category) =>
category.IsNullOrWhiteSpace() ? "miscellaneous" : category.Trim();
}
- private class Int64DefaultValueProcessor : ResultProcessor
+ private sealed class Int64DefaultValueProcessor : ResultProcessor
{
private readonly long _defaultValue;
@@ -1384,7 +1384,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
internal static ResultProcessor StreamTrimResultArray =>
Int32EnumArrayProcessor.Instance;
- private class Int32EnumProcessor : ResultProcessor where T : unmanaged, Enum
+ private sealed class Int32EnumProcessor : ResultProcessor where T : unmanaged, Enum
{
private Int32EnumProcessor() { }
public static readonly Int32EnumProcessor Instance = new();
@@ -1418,7 +1418,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
}
}
- private class Int32EnumArrayProcessor : ResultProcessor where T : unmanaged, Enum
+ private sealed class Int32EnumArrayProcessor : ResultProcessor where T : unmanaged, Enum
{
private Int32EnumArrayProcessor() { }
public static readonly Int32EnumArrayProcessor Instance = new();
@@ -1449,7 +1449,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
}
}
- private class PubSubNumSubProcessor : Int64Processor
+ private sealed class PubSubNumSubProcessor : Int64Processor
{
protected override bool SetResultCore(PhysicalConnection connection, Message message, in RawResult result)
{
@@ -2049,7 +2049,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
}
}
- private class ScriptResultProcessor : ResultProcessor
+ private sealed class ScriptResultProcessor : ResultProcessor
{
public override bool SetResult(PhysicalConnection connection, Message message, in RawResult result)
{
@@ -2632,7 +2632,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
}
}
- internal class StreamNameValueEntryProcessor : ValuePairInterleavedProcessorBase
+ internal sealed class StreamNameValueEntryProcessor : ValuePairInterleavedProcessorBase
{
public static readonly StreamNameValueEntryProcessor Instance = new();
private StreamNameValueEntryProcessor()
@@ -2747,7 +2747,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
}
}
- private class TracerProcessor : ResultProcessor
+ private sealed class TracerProcessor : ResultProcessor
{
private readonly bool establishConnection;