
Marc SchierandCopilot
7b5fd1f534
Preserve nullable struct null-check semantics in UA0003 (#4039)
## Failure
UA0003 unwrapped `Nullable<T>` before classifying OPC UA built-in
structs. That
reported valid nullable `== null` and `!= null` checks and offered fixes
whose
`.IsNull` semantics differ from nullable-value absence.
## Fix
- Leave `System.Nullable<T>` comparisons unchanged.
- Continue reporting direct null comparisons on OPC UA structs.
- Add coverage for nullable `NodeId` and `LocalizedText` operand
orderings.
## Reference
- OPC UA .NET 2.0 migration semantics.
- Split from #4021.
## Tests
- `dotnet test
tests\Opc.Ua.MigrationAnalyzer.Tests\Opc.Ua.MigrationAnalyzer.Tests.csproj
-c Release -f net10.0 --nologo` (121 passed)
- `dotnet test
tests\Opc.Ua.MigrationAnalyzer.Tests\Opc.Ua.MigrationAnalyzer.Tests.csproj
-c Release -f net48 --nologo` (121 passed)
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-22 04:07:45 +02:00
..
2026-07-16 06:25:54 +02:00
2026-07-16 06:26:05 +02:00
2026-07-16 06:26:05 +02:00
2026-07-16 06:26:05 +02:00
2026-07-20 08:17:34 +02:00
2026-07-21 17:55:15 +02:00
2026-07-17 19:36:53 +02:00
2026-07-16 06:26:05 +02:00
2026-07-18 05:01:03 +02:00
2026-07-16 06:26:05 +02:00
2026-07-16 06:26:05 +02:00
2026-07-16 06:26:05 +02:00
2026-07-21 20:55:13 +02:00
2026-07-22 04:06:03 +02:00
2026-07-18 21:45:32 +02:00
2026-07-16 06:26:05 +02:00
2026-07-21 20:24:31 +02:00
2026-07-21 20:54:19 +02:00
2026-07-22 04:06:33 +02:00
2026-07-16 06:26:05 +02:00
2026-07-22 04:07:45 +02:00
2026-07-16 06:26:05 +02:00
2026-07-16 06:26:05 +02:00
2026-07-16 06:26:05 +02:00
2026-07-16 06:26:05 +02:00
2026-07-16 06:26:05 +02:00
2026-07-16 06:26:05 +02:00
2026-07-16 06:26:05 +02:00
2026-07-21 19:54:45 +02:00
2026-07-21 19:54:45 +02:00
2026-07-16 06:26:05 +02:00
2026-07-21 11:28:44 +02:00
2026-07-16 06:26:05 +02:00
2026-07-16 06:26:05 +02:00
2026-07-21 20:46:27 +02:00
2026-07-21 20:47:40 +02:00
2026-07-16 06:26:05 +02:00
2026-07-21 20:54:19 +02:00
2026-07-16 06:26:05 +02:00
2026-07-21 20:48:44 +02:00
2026-07-16 06:26:05 +02:00
2026-07-18 20:15:49 +02:00
2026-07-16 06:26:05 +02:00
2026-07-16 06:26:05 +02:00
2026-07-16 06:26:05 +02:00
2026-07-18 05:01:03 +02:00
2026-07-16 06:26:05 +02:00
2026-07-21 11:26:25 +02:00
2026-07-18 05:01:03 +02:00
2026-07-16 06:26:05 +02:00
2026-07-16 06:26:05 +02:00
2026-07-16 06:26:05 +02:00
2026-07-16 06:26:05 +02:00
2026-07-16 06:25:54 +02:00
2026-07-16 06:25:54 +02:00