diff --git a/ICSharpCode.Decompiler/IL/Transforms/TransformArrayInitializers.cs b/ICSharpCode.Decompiler/IL/Transforms/TransformArrayInitializers.cs index 4503692fc..c0495e36d 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/TransformArrayInitializers.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/TransformArrayInitializers.cs @@ -76,8 +76,6 @@ namespace ICSharpCode.Decompiler.IL.Transforms (i, value) => { if (value == null) value = GetNullExpression(elementType); - else - value = value.Clone(); return StElem(new LdLoc(tempStore), new[] { new LdcI4(i) }, value, elementType); } )); @@ -92,7 +90,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms var block = new Block(); var tempStore = function.RegisterVariable(VariableKind.StackSlot, v.Type); block.Instructions.Add(new StLoc(tempStore, new NewArr(elementType, arrayLength.Select(l => new LdcI4(l)).ToArray()))); - block.Instructions.AddRange(values.SelectWithIndex((i, value) => StElem(new LdLoc(tempStore), new[] { new LdcI4(i) }, value.Clone(), elementType))); + block.Instructions.AddRange(values.SelectWithIndex((i, value) => StElem(new LdLoc(tempStore), new[] { new LdcI4(i) }, value, elementType))); block.FinalInstruction = new LdLoc(tempStore); body.Instructions[pos].ReplaceWith(new StLoc(finalStore, block)); RemoveInstructions(body, pos + 1, instructionsToRemove); diff --git a/ICSharpCode.Decompiler/Tests/RoundtripAssembly.cs b/ICSharpCode.Decompiler/Tests/RoundtripAssembly.cs index 4db23519f..6c6f6b81b 100644 --- a/ICSharpCode.Decompiler/Tests/RoundtripAssembly.cs +++ b/ICSharpCode.Decompiler/Tests/RoundtripAssembly.cs @@ -47,7 +47,7 @@ namespace ICSharpCode.Decompiler.Tests RunWithTest("Newtonsoft.Json-net40", "Newtonsoft.Json.dll", "Newtonsoft.Json.Tests.dll"); } - [Test, Ignore("Causes assertions in DelegateConstruction")] + [Test] public void NRefactory_CSharp() { try {