Browse Source

Fix #2712: TransformCollectionAndObjectInitializers fails to properly detect set-accessors of FakeProperties.

Bug likely introduced due to an oversight in #2677.
pull/2713/head
Siegfried Pammer 3 years ago
parent
commit
874ac9ac0b
  1. 2
      ICSharpCode.Decompiler/IL/Transforms/TransformCollectionAndObjectInitializers.cs

2
ICSharpCode.Decompiler/IL/Transforms/TransformCollectionAndObjectInitializers.cs

@ -335,7 +335,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms @@ -335,7 +335,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms
var property = method.AccessorOwner as IProperty;
if (!CanBeUsedInInitializer(property, resolveContext, kind, path))
goto default;
var isGetter = method.Equals(property?.Getter);
var isGetter = method.AccessorKind == System.Reflection.MethodSemanticsAttributes.Getter;
var indices = call.Arguments.Skip(1).Take(call.Arguments.Count - (isGetter ? 1 : 2)).ToArray();
if (indices.Length > 0 && settings?.DictionaryInitializers == false)
goto default;

Loading…
Cancel
Save