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
@@ -33,22 +33,20 @@ public sealed class ModbusExceptionMapperTests
/// <summary>Test transport that raises Modbus exceptions on send.</summary>
private sealed class ExceptionRaisingTransport(byte exceptionCode) : IModbusTransport
{
/// <summary>Completes immediately.</summary>
/// <param name="ct">Cancellation token.</param>
/// <inheritdoc />
public Task ConnectAsync(CancellationToken ct) => Task.CompletedTask;
/// <summary>Returns a failed task with a Modbus exception.</summary>
/// <param name="unitId">Modbus unit identifier.</param>
/// <param name="pdu">Protocol data unit to send.</param>
/// <param name="ct">Cancellation token.</param>
/// <inheritdoc />
public Task<byte[]> SendAsync(byte unitId, byte[] pdu, CancellationToken ct)
=> Task.FromException<byte[]>(new ModbusException(pdu[0], exceptionCode, $"fc={pdu[0]} code={exceptionCode}"));
/// <summary>Completes immediately.</summary>
/// <returns>A completed value task.</returns>
public ValueTask DisposeAsync() => ValueTask.CompletedTask;
}
/// <summary>Verifies that exception 0x02 surfaces as BadOutOfRange, not BadInternalError.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task Read_surface_exception_02_as_BadOutOfRange_not_BadInternalError()
{
@@ -63,6 +61,7 @@ public sealed class ModbusExceptionMapperTests
}
/// <summary>Verifies that exception 0x04 surfaces as BadDeviceFailure.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task Write_surface_exception_04_as_BadDeviceFailure()
{
@@ -82,22 +81,20 @@ public sealed class ModbusExceptionMapperTests
/// <summary>Test transport that raises non-Modbus exceptions on send.</summary>
private sealed class NonModbusFailureTransport : IModbusTransport
{
/// <summary>Completes immediately.</summary>
/// <param name="ct">Cancellation token.</param>
/// <inheritdoc />
public Task ConnectAsync(CancellationToken ct) => Task.CompletedTask;
/// <summary>Returns a failed task with a non-Modbus exception.</summary>
/// <param name="unitId">Modbus unit identifier.</param>
/// <param name="pdu">Protocol data unit to send.</param>
/// <param name="ct">Cancellation token.</param>
/// <inheritdoc />
public Task<byte[]> SendAsync(byte unitId, byte[] pdu, CancellationToken ct)
=> Task.FromException<byte[]>(new EndOfStreamException("socket closed mid-response"));
/// <summary>Completes immediately.</summary>
/// <returns>A completed value task.</returns>
public ValueTask DisposeAsync() => ValueTask.CompletedTask;
}
/// <summary>Verifies that non-Modbus transport failures surface as BadCommunicationError.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task Read_non_modbus_failure_maps_to_BadCommunicationError_not_BadInternalError()
{