Skip to content

Commit d736b02

Browse files
Fix #3480: assert at ExpressionBuilder.BuildArrayInitializerExpression with properties that are not C# indexers, but parameterized properties.
1 parent 8b1fb63 commit d736b02

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3513,11 +3513,11 @@ private ArrayInitializerExpression BuildArrayInitializerExpression(Block block,
35133513
);
35143514
break;
35153515
case IL.Transforms.AccessPathKind.Setter:
3516-
Debug.Assert(lastElement.Member is IProperty || lastElement.Member is IField);
3517-
if (lastElement.Indices?.Length > 0)
3516+
Debug.Assert(lastElement.Member is IProperty or IField);
3517+
if (lastElement.Indices?.Length is var indices and > 0)
35183518
{
35193519
var property = (IProperty)lastElement.Member;
3520-
Debug.Assert(property.IsIndexer);
3520+
Debug.Assert(property.Parameters.Count == indices);
35213521
Debug.Assert(property.Setter != null, $"Indexer property {property} has no setter");
35223522
elementsStack.Peek().Add(
35233523
new CallBuilder(this, typeSystem, settings)

0 commit comments

Comments
 (0)