diff --git a/Directory.Packages.props b/Directory.Packages.props
index 4aee092..633b2ea 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -20,7 +20,7 @@
-
+
diff --git a/tests/ProjGraph.Tests.Integration.Mcp/McpTransportTests.cs b/tests/ProjGraph.Tests.Integration.Mcp/McpTransportTests.cs
index f8b5b3b..3d09859 100644
--- a/tests/ProjGraph.Tests.Integration.Mcp/McpTransportTests.cs
+++ b/tests/ProjGraph.Tests.Integration.Mcp/McpTransportTests.cs
@@ -51,7 +51,7 @@ private static string LocateServerExecutable()
.FirstOrDefault();
serverExe.Should().NotBeNull($"the MCP server apphost must be present under {binRoot}");
- return serverExe!.FullName;
+ return serverExe.FullName;
}
private static string JoinText(CallToolResult result)
diff --git a/tests/ProjGraph.Tests.Unit.ClassDiagram/AnalyzeFileUseCaseTests.cs b/tests/ProjGraph.Tests.Unit.ClassDiagram/AnalyzeFileUseCaseTests.cs
index d94a490..612cf73 100644
--- a/tests/ProjGraph.Tests.Unit.ClassDiagram/AnalyzeFileUseCaseTests.cs
+++ b/tests/ProjGraph.Tests.Unit.ClassDiagram/AnalyzeFileUseCaseTests.cs
@@ -144,7 +144,7 @@ public class Widget { }
await _sut.ExecuteAsync(filePath);
captured.Should().NotBeNull();
- captured!.StartDirectory.Should().Be("/work/dir");
+ captured.StartDirectory.Should().Be("/work/dir");
}
private void SetupFileSystem(string filePath, string code)
diff --git a/tests/ProjGraph.Tests.Unit.ClassDiagram/ClassDiagramCoverageTests.cs b/tests/ProjGraph.Tests.Unit.ClassDiagram/ClassDiagramCoverageTests.cs
index ed12832..d4f4113 100644
--- a/tests/ProjGraph.Tests.Unit.ClassDiagram/ClassDiagramCoverageTests.cs
+++ b/tests/ProjGraph.Tests.Unit.ClassDiagram/ClassDiagramCoverageTests.cs
@@ -109,7 +109,7 @@ public async Task ResolveRelatedSymbol_DiscoveredFileAlreadyInCompilation_Should
await _fileSystem.DidNotReceive().ReadAllTextAsync(Arg.Any(), Arg.Any());
// The reused tree does not actually declare Ghost, so the original symbol is handed back.
resolved.Should().NotBeNull();
- resolved!.Name.Should().Be("Ghost");
+ resolved.Name.Should().Be("Ghost");
}
[Fact]
@@ -130,7 +130,7 @@ public async Task ResolveRelatedSymbol_DiscoveredFileWithoutMatchingDeclaration_
var resolved = await sut.ResolveRelatedSymbolAsync(ghost, context);
resolved.Should().NotBeNull();
- resolved!.Name.Should().Be("Ghost");
+ resolved.Name.Should().Be("Ghost");
}
[Fact]
@@ -149,7 +149,7 @@ public async Task ResolveRelatedSymbol_DiscoveredFileDeclaringTheType_ShouldReso
var resolved = await sut.ResolveRelatedSymbolAsync(ghost, context);
resolved.Should().NotBeNull();
- resolved!.Name.Should().Be("Ghost");
+ resolved.Name.Should().Be("Ghost");
resolved.TypeKind.Should().Be(Microsoft.CodeAnalysis.TypeKind.Class);
}
diff --git a/tests/ProjGraph.Tests.Unit.ClassDiagram/SymbolResolverTests.cs b/tests/ProjGraph.Tests.Unit.ClassDiagram/SymbolResolverTests.cs
index 672afea..b49c79b 100644
--- a/tests/ProjGraph.Tests.Unit.ClassDiagram/SymbolResolverTests.cs
+++ b/tests/ProjGraph.Tests.Unit.ClassDiagram/SymbolResolverTests.cs
@@ -47,7 +47,7 @@ public async Task ResolveRelatedSymbolAsync_SymbolDeclaredInCompilation_ShouldNo
var resolved = await sut.ResolveRelatedSymbolAsync(baseSymbol, context);
resolved.Should().NotBeNull();
- resolved!.Name.Should().Be("Base");
+ resolved.Name.Should().Be("Base");
await _discovery.DidNotReceive().FindTypeDefinitionFileAsync(Arg.Any(), Arg.Any());
}
diff --git a/tests/ProjGraph.Tests.Unit.EntityFramework/EfDiscoveryCoverageTests.cs b/tests/ProjGraph.Tests.Unit.EntityFramework/EfDiscoveryCoverageTests.cs
index d03cd6a..ad087ef 100644
--- a/tests/ProjGraph.Tests.Unit.EntityFramework/EfDiscoveryCoverageTests.cs
+++ b/tests/ProjGraph.Tests.Unit.EntityFramework/EfDiscoveryCoverageTests.cs
@@ -248,7 +248,7 @@ public class Address
var owned = model.Entities.SingleOrDefault(e => e.Key == "Customer.Addresses");
owned.Should().NotBeNull("OwnsMany over an array navigation must still capture the owned type");
- owned!.IsCollection.Should().BeTrue();
+ owned.IsCollection.Should().BeTrue();
owned.Properties.Select(p => p.Name).Should().Contain("Street").And.Contain("City");
}
diff --git a/tests/ProjGraph.Tests.Unit.EntityFramework/OwnedCrossFileTypeRegressionTests.cs b/tests/ProjGraph.Tests.Unit.EntityFramework/OwnedCrossFileTypeRegressionTests.cs
index 5e70aad..0988668 100644
--- a/tests/ProjGraph.Tests.Unit.EntityFramework/OwnedCrossFileTypeRegressionTests.cs
+++ b/tests/ProjGraph.Tests.Unit.EntityFramework/OwnedCrossFileTypeRegressionTests.cs
@@ -83,7 +83,7 @@ public record Money(decimal Amount, string Currency = "USD");
var owned = model.Entities.SingleOrDefault(e => e.Key == "Product.Price");
owned.Should().NotBeNull(
"OwnsOne(p => p.Price) must capture the owned entity even though Money.cs is a separate file");
- owned!.Properties.Select(p => p.Name).Should().BeEquivalentTo(["Amount", "Currency"],
+ owned.Properties.Select(p => p.Name).Should().BeEquivalentTo(["Amount", "Currency"],
"Money's columns can only come from CLR seeding — there is no Property() call for either — " +
"so this fails unless Money.cs was pulled into the compilation and resolved");
diff --git a/tests/ProjGraph.Tests.Unit.EntityFramework/OwnedRecordOwnerRegressionTests.cs b/tests/ProjGraph.Tests.Unit.EntityFramework/OwnedRecordOwnerRegressionTests.cs
index f0f9ee3..0e6b67a 100644
--- a/tests/ProjGraph.Tests.Unit.EntityFramework/OwnedRecordOwnerRegressionTests.cs
+++ b/tests/ProjGraph.Tests.Unit.EntityFramework/OwnedRecordOwnerRegressionTests.cs
@@ -87,7 +87,7 @@ public class Money
owned.Should().NotBeNull(
"OwnsOne(p => p.Price) must capture the owned entity even though Product is record-declared " +
"and Money.cs is a separate file");
- owned!.Properties.Select(p => p.Name).Should().BeEquivalentTo(["Amount", "Currency"],
+ owned.Properties.Select(p => p.Name).Should().BeEquivalentTo(["Amount", "Currency"],
"the pre-pass must find Price on the record-declared Product to discover Money.cs and pull it " +
"into the compilation; without that, Money resolves to an error type and the entity is captured " +
"with zero properties");
@@ -140,7 +140,7 @@ public record Money(decimal Amount, string Currency);
owned.Should().NotBeNull(
"OwnsOne(p => p.Price) must capture the owned entity even though Price is declared as a " +
"primary-constructor parameter rather than a property member");
- owned!.Properties.Select(p => p.Name).Should().BeEquivalentTo(["Amount", "Currency"],
+ owned.Properties.Select(p => p.Name).Should().BeEquivalentTo(["Amount", "Currency"],
"the pre-pass must find the Price parameter on the positional record to discover Money.cs; " +
"without that, Money resolves to an error type and the owned entity renders as an empty box");