Skip to content

Commit

Permalink
Mark non-capturing lambdas static (#7934)
Browse files Browse the repository at this point in the history
  • Loading branch information
benaadams authored Dec 19, 2024
1 parent 096adbb commit fbb9d0d
Show file tree
Hide file tree
Showing 372 changed files with 969 additions and 978 deletions.
2 changes: 1 addition & 1 deletion src/Nethermind/Nethermind.Abi/AbiBaseDescription.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public abstract class AbiBaseDescription<T> : AbiBaseDescription where T : AbiPa
public T[] Inputs { get; set; } = [];

public AbiEncodingInfo GetCallInfo(AbiEncodingStyle encodingStyle = AbiEncodingStyle.IncludeSignature) =>
new(encodingStyle, _callSignature ??= new AbiSignature(Name, Inputs.Select(i => i.Type).ToArray()));
new(encodingStyle, _callSignature ??= new AbiSignature(Name, Inputs.Select(static i => i.Type).ToArray()));

public Hash256 GetHash() => GetCallInfo().Signature.Hash;

Expand Down
2 changes: 1 addition & 1 deletion src/Nethermind/Nethermind.Abi/AbiFunctionDescription.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,6 @@ public bool Constant
}
}

public AbiEncodingInfo GetReturnInfo() => new(AbiEncodingStyle.None, _returnSignature ??= new AbiSignature(Name, Outputs.Select(i => i.Type).ToArray()));
public AbiEncodingInfo GetReturnInfo() => new(AbiEncodingStyle.None, _returnSignature ??= new AbiSignature(Name, Outputs.Select(static i => i.Type).ToArray()));
}
}
18 changes: 9 additions & 9 deletions src/Nethermind/Nethermind.Abi/AbiParameter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -48,15 +48,15 @@ internal static partial class AbiParameterConverterStatics

internal static readonly Dictionary<string, Func<int?, int?, AbiType>> SimpleTypeFactories = new Dictionary<string, Func<int?, int?, AbiType>>(StringComparer.InvariantCultureIgnoreCase)
{
{"int", (m, n) => new AbiInt(m ?? 256)},
{"uint", (m, n) => new AbiUInt(m ?? 256)},
{"address", (m, n) => AbiType.Address},
{"bool", (m, n) => AbiType.Bool},
{"fixed", (m, n) => new AbiFixed(m ?? 128, n ?? 18)},
{"ufixed", (m, n) => new AbiUFixed(m ?? 128, n ?? 18)},
{"bytes", (m, n) => m.HasValue ? new AbiBytes(m.Value) : AbiType.DynamicBytes},
{"function", (m, n) => AbiType.Function},
{"string", (m, n) => AbiType.String}
{"int", static (m, n) => new AbiInt(m ?? 256)},
{"uint", static (m, n) => new AbiUInt(m ?? 256)},
{"address", static (m, n) => AbiType.Address},
{"bool", static (m, n) => AbiType.Bool},
{"fixed", static (m, n) => new AbiFixed(m ?? 128, n ?? 18)},
{"ufixed", static (m, n) => new AbiUFixed(m ?? 128, n ?? 18)},
{"bytes", static (m, n) => m.HasValue ? new AbiBytes(m.Value) : AbiType.DynamicBytes},
{"function", static (m, n) => AbiType.Function},
{"string", static (m, n) => AbiType.String}
};

[GeneratedRegex("^(?<T>u?int(?<M>\\d{1,3})?|address|bool|u?fixed((?<M>\\d{1,3})x(?<N>\\d{1,2}))?|bytes(?<M>\\d{1,3})?|function|string|tuple)(?<A>\\[(?<L>\\d+)?\\])?$", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant)]
Expand Down
4 changes: 2 additions & 2 deletions src/Nethermind/Nethermind.Abi/AbiTuple.cs
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ public override byte[] Encode(object? arg, bool packed)
private static Type GetCSharpType(AbiType[] elements)
{
Type genericType = Type.GetType("System.ValueTuple`" + elements.Length)!;
Type[] typeArguments = elements.Select(v => v.CSharpType).ToArray();
Type[] typeArguments = elements.Select(static v => v.CSharpType).ToArray();
return genericType.MakeGenericType(typeArguments);
}
}
Expand All @@ -94,7 +94,7 @@ public AbiTuple()
_properties = typeof(T).GetProperties();
_elements = _properties.Select(GetAbiType).ToArray();
Name = $"({string.Join(",", _elements.AsEnumerable())})";
IsDynamic = _elements.Any(p => p.IsDynamic);
IsDynamic = _elements.Any(static p => p.IsDynamic);
}

public override (object, int) Decode(byte[] data, int position, bool packed)
Expand Down
2 changes: 1 addition & 1 deletion src/Nethermind/Nethermind.Api/IBasicApi.cs
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ public interface IBasicApi
.SingleOrDefault(cp => cp.SealEngineType == SealEngineType);

public IEnumerable<IConsensusWrapperPlugin> GetConsensusWrapperPlugins() =>
Plugins.OfType<IConsensusWrapperPlugin>().Where(p => p.Enabled);
Plugins.OfType<IConsensusWrapperPlugin>().Where(static p => p.Enabled);

public IEnumerable<ISynchronizationPlugin> GetSynchronizationPlugins() =>
Plugins.OfType<ISynchronizationPlugin>();
Expand Down
4 changes: 2 additions & 2 deletions src/Nethermind/Nethermind.AuRa.Test/AuRaBlockProducerTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -184,15 +184,15 @@ public async Task Produces_block_when_ForceSealing_is_false_and_there_are_transa
public async Task Does_not_produce_block_when_sealing_fails()
{
Context context = new();
context.Sealer.SealBlock(Arg.Any<Block>(), Arg.Any<CancellationToken>()).Returns(c => Task.FromException(new Exception()));
context.Sealer.SealBlock(Arg.Any<Block>(), Arg.Any<CancellationToken>()).Returns(static c => Task.FromException(new Exception()));
(await StartStop(context)).ShouldProduceBlocks(Quantity.None());
}

[Test]
public async Task Does_not_produce_block_when_sealing_cancels()
{
Context context = new();
context.Sealer.SealBlock(Arg.Any<Block>(), Arg.Any<CancellationToken>()).Returns(c => Task.FromCanceled(new CancellationToken(true)));
context.Sealer.SealBlock(Arg.Any<Block>(), Arg.Any<CancellationToken>()).Returns(static c => Task.FromCanceled(new CancellationToken(true)));
(await StartStop(context)).ShouldProduceBlocks(Quantity.None());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ public async Task returns_unmodified_data_from_empty_receipts_on_consecutive_wit
testCase.DataContract.GetAllItemsFromBlock(blockHeader).Returns(new[] { TestItem.AddressA, TestItem.AddressC });
Block secondBlock = Build.A.Block.WithHeader(Build.A.BlockHeader.WithNumber(2).WithHash(TestItem.KeccakB).WithParentHash(TestItem.KeccakA).TestObject).TestObject;
testCase.DataContract.TryGetItemsChangedFromBlock(secondBlock.Header, [], out Arg.Any<IEnumerable<Address>>())
.Returns(x =>
.Returns(static x =>
{
x[2] = Array.Empty<Address>();
return false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,9 +84,9 @@ public async Task
new(TestItem.AddressB, FnSignature2, 4, TxPriorityContract.DestinationSource.Contract, 1),
};

priorities.Should().BeEquivalentTo(expected, o => o.ComparingByMembers<TxPriorityContract.Destination>()
.Excluding(su => su.BlockNumber));
prioritiesInContract.Should().BeEquivalentTo(expected, o => o.ComparingByMembers<TxPriorityContract.Destination>());
priorities.Should().BeEquivalentTo(expected, static o => o.ComparingByMembers<TxPriorityContract.Destination>()
.Excluding(static su => su.BlockNumber));
prioritiesInContract.Should().BeEquivalentTo(expected, static o => o.ComparingByMembers<TxPriorityContract.Destination>());
}

[Test]
Expand All @@ -102,10 +102,10 @@ public async Task mingas_should_return_correctly()
new(TestItem.AddressB, FnSignature, 2, TxPriorityContract.DestinationSource.Contract, 2),
};

minGasPrices.Should().BeEquivalentTo(expected, o => o.ComparingByMembers<TxPriorityContract.Destination>()
.Excluding(su => su.BlockNumber));
minGasPrices.Should().BeEquivalentTo(expected, static o => o.ComparingByMembers<TxPriorityContract.Destination>()
.Excluding(static su => su.BlockNumber));

minGasPricesInContract.Should().BeEquivalentTo(expected, o => o.ComparingByMembers<TxPriorityContract.Destination>());
minGasPricesInContract.Should().BeEquivalentTo(expected, static o => o.ComparingByMembers<TxPriorityContract.Destination>());
}

[Test]
Expand Down
4 changes: 2 additions & 2 deletions src/Nethermind/Nethermind.AuRa.Test/ListExtensionsTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ namespace Nethermind.AuRa.Test
{
public class ListExtensionsTests
{
private readonly List<int> _list = Enumerable.Range(5, 10).Select(i => i * 2).ToList();
private readonly List<int> _list = Enumerable.Range(5, 10).Select(static i => i * 2).ToList();

[TestCase(2)]
[TestCase(10)]
Expand All @@ -23,7 +23,7 @@ public class ListExtensionsTests
public void BinarySearchTest(int searchFor)
{
IList<int> iList = _list;
iList.BinarySearch(searchFor, (a, b) => a.CompareTo(b)).Should().Be(_list.BinarySearch(searchFor));
iList.BinarySearch(searchFor, static (a, b) => a.CompareTo(b)).Should().Be(_list.BinarySearch(searchFor));
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public void SetUp()
_block = new Block(Build.A.BlockHeader.TestObject, new BlockBody());

_abiEncoder
.Encode(AbiEncodingStyle.IncludeSignature, Arg.Is<AbiSignature>(s => s.Name == "reward"), Arg.Any<object[]>())
.Encode(AbiEncodingStyle.IncludeSignature, Arg.Is<AbiSignature>(static s => s.Name == "reward"), Arg.Any<object[]>())
.Returns(_rewardData);
}

Expand Down Expand Up @@ -218,15 +218,15 @@ private bool CheckTransaction(Transaction t, ICollection<Address> addresses, byt

private byte[] SetupAbiAddresses(params BlockReward[] rewards)
{
byte[] data = rewards.Select(r => r.Address).SelectMany(a => a.Bytes).ToArray();
byte[] data = rewards.Select(static r => r.Address).SelectMany(static a => a.Bytes).ToArray();

_abiEncoder.Decode(
AbiEncodingStyle.None,
Arg.Is<AbiSignature>(s =>
Arg.Is<AbiSignature>(static s =>
s.Types.Length == 2
&& s.Types[0] is AbiArray && ((AbiArray)s.Types[0]).ElementType is AbiAddress
&& s.Types[1] is AbiArray && ((AbiArray)s.Types[1]).ElementType is AbiUInt),
data).Returns(new object[] { rewards.Select(r => r.Address).ToArray(), rewards.Select(r => r.Value).ToArray() });
data).Returns(new object[] { rewards.Select(static r => r.Address).ToArray(), rewards.Select(static r => r.Value).ToArray() });

return data;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,9 @@ public bool is_allowed_returns_correct(Address address, ulong gasLimit)
IDictionaryContractDataStore<TxPriorityContract.Destination> dictionaryContractDataStore = Substitute.For<IDictionaryContractDataStore<TxPriorityContract.Destination>>();
dictionaryContractDataStore.TryGetValue(
Arg.Any<BlockHeader>(),
Arg.Is<TxPriorityContract.Destination>(d => d.Target == TestItem.AddressA),
Arg.Is<TxPriorityContract.Destination>(static d => d.Target == TestItem.AddressA),
out Arg.Any<TxPriorityContract.Destination>())
.Returns(x =>
.Returns(static x =>
{
x[2] = new TxPriorityContract.Destination(TestItem.AddressA, [], 5);
return true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,10 @@ static Func<IEnumerable<Transaction>, IEnumerable<Transaction>> Select(Func<IEnu


yield return new TestCaseData(null).SetName("All");
yield return new TestCaseData(Select(t => t.Where(tx => !WhitelistedSenders.Contains(tx.SenderAddress)))).SetName("Not whitelisted");
yield return new TestCaseData(Select(t => t.Where(tx => WhitelistedSenders.Contains(tx.SenderAddress)))).SetName("Only whitelisted");
yield return new TestCaseData(Select(t => t.Where(tx => tx.To != TestItem.AddressB))).SetName("No priority");
yield return new TestCaseData(Select(t => t.Where(tx => tx.To == TestItem.AddressB))).SetName("Only priority");
yield return new TestCaseData(Select(static t => t.Where(static tx => !WhitelistedSenders.Contains(tx.SenderAddress)))).SetName("Not whitelisted");
yield return new TestCaseData(Select(static t => t.Where(static tx => WhitelistedSenders.Contains(tx.SenderAddress)))).SetName("Only whitelisted");
yield return new TestCaseData(Select(static t => t.Where(static tx => tx.To != TestItem.AddressB))).SetName("No priority");
yield return new TestCaseData(Select(static t => t.Where(static tx => tx.To == TestItem.AddressB))).SetName("Only priority");
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public void SetUp()
.Returns(AcceptTxResult.Invalid);

_certifierContract.Certified(Arg.Any<BlockHeader>(),
Arg.Is<Address>(a => TestItem.Addresses.Take(3).Contains(a)))
Arg.Is<Address>(static a => TestItem.Addresses.Take(3).Contains(a)))
.Returns(true);

_filter = new TxCertifierFilter(_certifierContract, _notCertifiedFilter, _specProvider, LimboLogs.Instance);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,11 +82,11 @@ public void SetUp()
_blockTree.Head.Returns(_block);

_abiEncoder
.Encode(AbiEncodingStyle.IncludeSignature, Arg.Is<AbiSignature>(s => s.Name == "getValidators"), Arg.Any<object[]>())
.Encode(AbiEncodingStyle.IncludeSignature, Arg.Is<AbiSignature>(static s => s.Name == "getValidators"), Arg.Any<object[]>())
.Returns(_getValidatorsData.TransactionData);

_abiEncoder
.Encode(AbiEncodingStyle.IncludeSignature, Arg.Is<AbiSignature>(s => s.Name == "finalizeChange"), Arg.Any<object[]>())
.Encode(AbiEncodingStyle.IncludeSignature, Arg.Is<AbiSignature>(static s => s.Name == "finalizeChange"), Arg.Any<object[]>())
.Returns(_finalizeChangeData.TransactionData);

_validatorContract = new ValidatorContract(_transactionProcessor, _abiEncoder, _contractAddress, _stateProvider, _readOnlyTxProcessorSource, new Signer(0, TestItem.PrivateKeyD, LimboLogs.Instance));
Expand Down Expand Up @@ -158,7 +158,7 @@ public void initializes_pendingValidators_from_db()
Raise.EventWith(new FinalizeEventArgs(_block.Header,
Build.A.BlockHeader.WithNumber(blockNumber).WithHash(blockHash).TestObject));

validator.Validators.Should().BeEquivalentTo(validators, o => o.WithStrictOrdering());
validator.Validators.Should().BeEquivalentTo(validators, static o => o.WithStrictOrdering());
}

[TestCase(1)]
Expand Down Expand Up @@ -610,7 +610,7 @@ private void ValidateFinalizationForChain(ConsecutiveInitiateChangeTestParameter
}

private static Address[] GenerateValidators(int number) =>
Enumerable.Range(1, number).Select(i => Address.FromNumber((UInt256)i)).ToArray();
Enumerable.Range(1, number).Select(static i => Address.FromNumber((UInt256)i)).ToArray();

private void SetupInitialValidators(params Address[] initialValidators)
{
Expand Down Expand Up @@ -646,11 +646,11 @@ private void SetupInitialValidators(BlockHeader header, BlockHeader parentHeader

private byte[] SetupAbiAddresses(Address[] addresses)
{
byte[] data = addresses.SelectMany(a => a.Bytes).ToArray();
byte[] data = addresses.SelectMany(static a => a.Bytes).ToArray();

_abiEncoder.Decode(
AbiEncodingStyle.None,
Arg.Is<AbiSignature>(s => s.Types.Length == 1 && s.Types[0].CSharpType == typeof(Address[])),
Arg.Is<AbiSignature>(static s => s.Types.Length == 1 && s.Types[0].CSharpType == typeof(Address[])),
data).Returns(new object[] { addresses });

return data;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ public void creates_inner_validators()
Build.A.BlockHeader.WithNumber(blockNumber + 1).TestObject, Build.A.BlockHeader.WithNumber(blockNumber).TestObject));
}

_innerValidators.Keys.Should().BeEquivalentTo(_validator.Validators.Keys.Select(x => x == 0 ? 1 : x + 2));
_innerValidators.Keys.Should().BeEquivalentTo(_validator.Validators.Keys.Select(static x => x == 0 ? 1 : x + 2));
}

[TestCase(AuRaParameters.ValidatorType.Contract, 1)]
Expand Down Expand Up @@ -174,7 +174,7 @@ public long initializes_validator_when_on_nonconsecutive_block(long blockNumber,
{
_validator = GetValidator(validatorType);
IAuRaValidator validator = new MultiValidator(_validator, _factory, _blockTree, _validatorStore, _finalizationManager, default, _logManager);
_validator.Validators.ToList().TryGetSearchedItem(in blockNumber, (l, pair) => l.CompareTo(pair.Key), out KeyValuePair<long, AuRaParameters.Validator> validatorInfo);
_validator.Validators.ToList().TryGetSearchedItem(in blockNumber, static (l, pair) => l.CompareTo(pair.Key), out KeyValuePair<long, AuRaParameters.Validator> validatorInfo);
_finalizationManager.GetFinalizationLevel(validatorInfo.Key).Returns(finalizedLastValidatorBlockLevel ? blockNumber - 2 : (long?)null);
_block.Header.Number = blockNumber;
validator.OnBlockProcessingStart(_block);
Expand Down Expand Up @@ -213,7 +213,7 @@ private void EnsureInnerValidatorsCalled(Func<int, (IAuRaValidator Validator, in

private Dictionary<AuRaParameters.Validator, long> GetInnerValidatorsFirstBlockCalls(AuRaParameters.Validator validator)
{
return validator.Validators.ToDictionary(x => x.Value, x => Math.Max(x.Key + 1, 1));
return validator.Validators.ToDictionary(static x => x.Value, static x => Math.Max(x.Key + 1, 1));
}

private static AuRaParameters.Validator GetValidator(AuRaParameters.ValidatorType validatorType)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ public void Reports_skipped_blocks()
context.ReportingValidatorContract.Received(1).ReportBenign(TestItem.AddressC, (UInt256)header.Number);
context.ReportingValidatorContract.Received(1).ReportBenign(TestItem.AddressD, (UInt256)header.Number);
context.ReportingValidatorContract.Received(0).ReportBenign(NodeAddress, (UInt256)header.Number);
context.TxSender.Received(3).SendTransaction(Arg.Is<Transaction>(t => t is GeneratedTransaction), TxHandlingOptions.ManagedNonce);
context.TxSender.Received(3).SendTransaction(Arg.Is<Transaction>(static t => t is GeneratedTransaction), TxHandlingOptions.ManagedNonce);
}

[Test]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ public void validators_return_as_expected(IDb db, long? blockNumber, IEnumerable
ValidatorStore store = new(db);
if (validatorsToAdd is not null)
{
foreach ((long FinalizingBlock, Address[] Validators) validator in validatorsToAdd.OrderBy(v => v.FinalizingBlock))
foreach ((long FinalizingBlock, Address[] Validators) validator in validatorsToAdd.OrderBy(static v => v.FinalizingBlock))
{
store.SetValidators(validator.FinalizingBlock, validator.Validators);
}
Expand Down Expand Up @@ -137,7 +137,7 @@ private static MemDb CreateMemDbWithValidators(IEnumerable<(long FinalizingBlock
static Hash256 GetKey(in long blockNumber) => Keccak.Compute("Validators" + blockNumber);

validators ??= Array.Empty<(long FinalizingBlock, Address[] Validators)>();
(long FinalizingBlock, Address[] Validators)[] ordered = validators.OrderByDescending(v => v.FinalizingBlock).ToArray();
(long FinalizingBlock, Address[] Validators)[] ordered = validators.OrderByDescending(static v => v.FinalizingBlock).ToArray();

MemDb memDb = new();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ public static IEnumerable GetBloomsTestCases
{
get
{
static IEnumerable<long> GetRange(long expectedFound, int offset = 0) => Enumerable.Range(offset, (int)expectedFound).Select(i => (long)i);
static IEnumerable<long> GetRange(long expectedFound, int offset = 0) => Enumerable.Range(offset, (int)expectedFound).Select(static i => (long)i);
int searchesPerBucket = 1 + LevelMultiplier + LevelMultiplier * LevelMultiplier + LevelMultiplier * LevelMultiplier * LevelMultiplier;

int bucketItems = new BloomStorage(new BloomConfig() { IndexLevelBucketSizes = new[] { LevelMultiplier, LevelMultiplier, LevelMultiplier } }, new MemDb(), new InMemoryDictionaryFileStoreFactory()).MaxBucketSize;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ public FilterBuilder WithAddress(Address address)

public FilterBuilder WithAddresses(params Address[] addresses)
{
_address = new AddressFilter(addresses.Select(a => new AddressAsKey(a)).ToHashSet());
_address = new AddressFilter(addresses.Select(static a => new AddressAsKey(a)).ToHashSet());

return this;
}
Expand Down
Loading

0 comments on commit fbb9d0d

Please sign in to comment.