Commit Graph
4 Commits
Author SHA1 Message Date
dualfroz 999d3b48fa Fix #4137: Keep nint in conditionals with mixed native int branches
When the branches of a conditional have different types, its type falls
back to the IL stack slot type, which is (U)IntPtr. IntroduceNativeIntTypeOnLocals
only retypes variables, so with native integers enabled the branches got
cast to IntPtr. Map (U)IntPtr to n(u)int the same way boxing does; pointer
types are unaffected.
2026-10-10 13:50:52 +02:00
upstream 197acf8cbe Upstream icsharpcode/ILSpy state of the touched files before 77a02d16fe 2026-10-10 12:50:07 +02:00
dualfroz 8c8b8caad8 Fix #3180: Spell out type arguments of a null-conditional extension call
When the extension method call cannot be written without type arguments
(another extension method with the same name and a different arity is
found first), the call falls back to the static form. For 'a?.M()' that
fallback produced 'Enumerable.Count(s?)', which is not valid C#. Writing
the type arguments excludes the extension methods of a different arity,
so for a null-conditional target the type arguments are tried before
giving up.
2026-10-03 11:46:13 +02:00
upstream a6526a1dab Upstream icsharpcode/ILSpy state of the touched files before 1e0fba1611 2026-10-03 11:46:13 +02:00