mirror of
https://github.com/icsharpcode/ILSpy.git
synced 2026-10-12 02:15:58 +00:00
Covers assignment through a null-conditional access on property, field, ref-returning property, indexer, and array-element targets; compound assignment (arithmetic, shift, bitwise, string concat) and ??= on properties and fields; chained conditional accesses with conditional and unconditional assignment tails; value-used forms (return, ?? coalesce, argument position, reference-typed result); event += and -= through ?. (new in C# 14, not part of C# 6 null propagation); side-effecting receivers and index expressions pinning single-evaluation order; and class-constrained plus unconstrained generic receivers. Nullable value type receivers, ++/-- and deconstruction targets are compile errors in C# 14 (verified against the SDK compiler) and are documented as out of scope in the fixture. The test is Assert.Ignore'd because the decompiler does not reconstruct the ?. assignment syntax yet (#829); it prints the equivalent guarded "if (x != null)" form for every construct, which recompiles cleanly, so the fixture is the desired output. Both RoslynLatest debug/opt configs compile the fixture and fail only at the output comparison, with every diverging line being one of the feature statements. Assisted-by: Claude:claude-fable-5:Claude Code