From b2ca674b84b472ad7ab68b35fe109ba15bcde60b Mon Sep 17 00:00:00 2001 From: ds5678 <49847914+ds5678@users.noreply.github.com> Date: Mon, 8 Sep 2025 13:56:33 -0700 Subject: [PATCH] Use pattern matching --- .../IL/Transforms/TransformCollectionAndObjectInitializers.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ICSharpCode.Decompiler/IL/Transforms/TransformCollectionAndObjectInitializers.cs b/ICSharpCode.Decompiler/IL/Transforms/TransformCollectionAndObjectInitializers.cs index 2f02608da..5fd87451d 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/TransformCollectionAndObjectInitializers.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/TransformCollectionAndObjectInitializers.cs @@ -98,9 +98,9 @@ namespace ICSharpCode.Decompiler.IL.Transforms return; } // Copy-propagate stack slot holding an 'ldloca' of the variable - if (pos < block.Instructions.Count && block.Instructions[pos + 1] is StLoc { Variable: { Kind: VariableKind.StackSlot, IsSingleDefinition: true }, Value: LdLoca ldLoca } && ldLoca.Variable == v) + if (pos < block.Instructions.Count && block.Instructions[pos + 1] is StLoc { Variable: { Kind: VariableKind.StackSlot, IsSingleDefinition: true }, Value: LdLoca ldLoca } stLocStack && ldLoca.Variable == v) { - CopyPropagation.Propagate((StLoc)block.Instructions[pos + 1], context); + CopyPropagation.Propagate(stLocStack, context); } int initializerItemsCount = 0; bool initializerContainsInitOnlyItems = false;