From 9ea8d7c6acddb28c370530200ecad3947f451d24 Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Sat, 8 Aug 2026 13:40:51 +0200 Subject: [PATCH] Say why ref results are excluded from switch expressions Assisted-by: Claude:claude-opus-5[1m]:Claude Code --- ICSharpCode.Decompiler/IL/Transforms/ExpressionTransforms.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/ICSharpCode.Decompiler/IL/Transforms/ExpressionTransforms.cs b/ICSharpCode.Decompiler/IL/Transforms/ExpressionTransforms.cs index edb2146e1..7c21e136d 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/ExpressionTransforms.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/ExpressionTransforms.cs @@ -676,6 +676,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms // Exactly one of resultVariable/leaveTarget must be null if ((resultVariable == null) == (leaveTarget == null)) return; + // C# has no ref-returning switch expression: an arm cannot be `0 => ref x`. if (resultType == StackType.Ref) return; if (switchInst.Value is StringToInt str2int)