From 9924eff88311343ebec96941745c63fbccf43fe2 Mon Sep 17 00:00:00 2001 From: Timothy Makkison Date: Tue, 13 Jan 2026 00:23:37 +0000 Subject: [PATCH] perf: use `GetOrAdd` overload to eliminate closure --- TUnit.Engine/Extensions/TestExtensions.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/TUnit.Engine/Extensions/TestExtensions.cs b/TUnit.Engine/Extensions/TestExtensions.cs index d8596a3747..00e50a27f7 100644 --- a/TUnit.Engine/Extensions/TestExtensions.cs +++ b/TUnit.Engine/Extensions/TestExtensions.cs @@ -41,11 +41,12 @@ private static string GetCachedAssemblyFullName(Assembly assembly) private static CachedTestNodeProperties GetOrCreateCachedProperties(TestContext testContext) { - var testDetails = testContext.Metadata.TestDetails; - var testId = testDetails.TestId; + var testId = testContext.Metadata.TestDetails.TestId; - return TestNodePropertiesCache.GetOrAdd(testId, _ => + return TestNodePropertiesCache.GetOrAdd(testId, static (_, testContext) => { + var testDetails = testContext.Metadata.TestDetails; + var fileLocation = new TestFileLocationProperty(testDetails.TestFilePath, new LinePositionSpan( new LinePosition(testDetails.TestLineNumber, 0), new LinePosition(testDetails.TestLineNumber, 0) @@ -108,7 +109,7 @@ private static CachedTestNodeProperties GetOrCreateCachedProperties(TestContext TrxFullyQualifiedTypeName = trxTypeName, TrxCategories = trxCategories }; - }); + }, testContext); } internal static TestNode ToTestNode(this TestContext testContext, TestNodeStateProperty stateProperty)