mirror of
https://github.com/icsharpcode/ILSpy.git
synced 2026-10-12 02:15:58 +00:00
TypeSystemAstBuilder writes the C# 14 "operator +=" declaration form, behind a support flag like the other version-gated operator syntax; a non-public operator has no legal operator declaration (CS9308) and falls back to a plain method, except an explicit interface implementation, which is private in metadata but still written in operator form. An instance operator hides by signature like an ordinary method, so it can carry "new"; the [CompilerFeatureRequired] marker the compiler emits is removed like the other feature markers. Tooltips get the same rendering via a ConversionFlags bit; widening ConversionFlags.All also turns on the existing checked-operator and unsigned-right-shift flags, which the tooltip ambience now sets explicitly. The test fixtures land here, where the pipeline is complete end to end: pretty and IL round-trips, correctness runs against Roslyn's C# 14 binding (including the operator-inheritance matrix and a ref-local target), and the ugly configuration pins the output with the setting off. Assisted-by: Claude:claude-opus-5:Claude Code