docs: complete XML doc comments via fixdocs (2757 to 131 findings)

Add missing <returns>/<param>/<summary>/<typeparam> tags and clean up
misused inheritdoc across 481 files so the documented API surface is
complete. Documentation-only (zero code lines changed). The 131 remaining
findings are inheritdoc-style warnings deliberately left to preserve
hand-written implementation rationale (plan-decision notes, race-condition
explanations).
This commit is contained in:
Joseph Doherty
2026-06-03 12:34:34 -04:00
parent c6d9b20d9f
commit bd6c0b4d3d
481 changed files with 2550 additions and 1668 deletions
@@ -14,13 +14,9 @@ public sealed class ModbusMultiUnitTests
private sealed class UnitCapturingTransport : IModbusTransport
{
public readonly List<byte> SeenUnitIds = new();
/// <summary>Connects to the transport.</summary>
/// <param name="ct">Token to cancel the connection.</param>
/// <inheritdoc />
public Task ConnectAsync(CancellationToken ct) => Task.CompletedTask;
/// <summary>Sends a Modbus PDU and returns a response.</summary>
/// <param name="unitId">The Modbus unit ID for the request.</param>
/// <param name="pdu">The protocol data unit to send.</param>
/// <param name="ct">Token to cancel the operation.</param>
/// <inheritdoc />
public Task<byte[]> SendAsync(byte unitId, byte[] pdu, CancellationToken ct)
{
SeenUnitIds.Add(unitId);
@@ -36,11 +32,13 @@ public sealed class ModbusMultiUnitTests
default: return Task.FromResult(new byte[] { pdu[0], 0, 0 });
}
}
/// <summary>Disposes the transport resources.</summary>
/// <summary>Releases the transport; this implementation is a no-op.</summary>
/// <returns>A completed value task.</returns>
public ValueTask DisposeAsync() => ValueTask.CompletedTask;
}
/// <summary>Verifies that per-tag UnitId routes reads to the correct slave.</summary>
/// <returns>A task that represents the asynchronous test operation.</returns>
[Fact]
public async Task PerTag_UnitId_Routes_To_Correct_Slave_In_MBAP()
{
@@ -61,6 +59,7 @@ public sealed class ModbusMultiUnitTests
}
/// <summary>Verifies that tags without UnitId override use the driver-level UnitId.</summary>
/// <returns>A task that represents the asynchronous test operation.</returns>
[Fact]
public async Task Tag_Without_UnitId_Falls_Back_To_DriverLevel()
{
@@ -77,6 +76,7 @@ public sealed class ModbusMultiUnitTests
}
/// <summary>Verifies that IPerCallHostResolver returns per-slave host strings.</summary>
/// <returns>A task that represents the asynchronous test operation.</returns>
[Fact]
public async Task IPerCallHostResolver_Returns_Per_Slave_Host_String()
{
@@ -97,6 +97,7 @@ public sealed class ModbusMultiUnitTests
}
/// <summary>Verifies that IPerCallHostResolver falls back to hostname for unknown tags.</summary>
/// <returns>A task that represents the asynchronous test operation.</returns>
[Fact]
public async Task IPerCallHostResolver_Unknown_Tag_Falls_Back_To_HostName()
{