Skip to content

Commit 2ac6487

Browse files
authored
Merge pull request #166 from gbtb/perf_improvement_for_AddTypesToNamespace
Passing only new types to AddTypesToNamespace load task
2 parents c26edb4 + 84d1413 commit 2ac6487

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

ArchUnitNET/Loader/ArchBuilder.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ public void LoadTypesForModule(ModuleDefinition module, string namespaceFilter)
7373
types.AddRange(nestedTypes);
7474
}
7575

76+
var currentTypes = new List<IType>(types.Count);
7677
types.Where(typeDefinition => RegexUtils.MatchNamespaces(namespaceFilter,
7778
typeDefinition.Namespace) && typeDefinition.CustomAttributes.All(att =>
7879
att.AttributeType.FullName != "Microsoft.VisualStudio.TestPlatform.TestSDKAutoGeneratedCode"))
@@ -81,6 +82,7 @@ public void LoadTypesForModule(ModuleDefinition module, string namespaceFilter)
8182
var type = _typeFactory.GetOrCreateTypeFromTypeReference(typeDefinition);
8283
if (!_architectureTypes.Contains(type) && !type.IsCompilerGenerated)
8384
{
85+
currentTypes.Add(type);
8486
_architectureTypes.Add(type);
8587
}
8688
});
@@ -90,7 +92,7 @@ public void LoadTypesForModule(ModuleDefinition module, string namespaceFilter)
9092
.ForEach(ns =>
9193
{
9294
_loadTaskRegistry.Add(typeof(AddTypesToNamespace),
93-
new AddTypesToNamespace(ns, _architectureTypes));
95+
new AddTypesToNamespace(ns, currentTypes));
9496
});
9597
}
9698

ArchUnitNETTests/Loader/ArchLoaderTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public void LoadAssemblies()
2525
Assert.NotEmpty(ArchUnitNETTestAssemblyArchitectureWithDependencies.Assemblies);
2626
}
2727

28-
[Fact(Skip = "This takes very long.")]
28+
[Fact]
2929
public void LoadAssembliesIncludingRecursiveDependencies()
3030
{
3131
var archUnitNetTestArchitectureWithRecursiveDependencies =

0 commit comments

Comments
 (0)