|
|
|
@ -1951,14 +1951,19 @@ namespace ICSharpCode.Decompiler.CSharp
@@ -1951,14 +1951,19 @@ namespace ICSharpCode.Decompiler.CSharp
|
|
|
|
|
case BlockKind.CallInlineAssign: |
|
|
|
|
return TranslateSetterCallAssignment(block); |
|
|
|
|
case BlockKind.CallWithNamedArgs: |
|
|
|
|
return WrapInRef( |
|
|
|
|
new CallBuilder(this, typeSystem, settings).CallWithNamedArgs(block), |
|
|
|
|
((CallInstruction)block.FinalInstruction).Method.ReturnType); |
|
|
|
|
return TranslateCallWithNamedArgs(block); |
|
|
|
|
default: |
|
|
|
|
return ErrorExpression("Unknown block type: " + block.Kind); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private TranslatedExpression TranslateCallWithNamedArgs(Block block) |
|
|
|
|
{ |
|
|
|
|
return WrapInRef( |
|
|
|
|
new CallBuilder(this, typeSystem, settings).CallWithNamedArgs(block), |
|
|
|
|
((CallInstruction)block.FinalInstruction).Method.ReturnType); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private TranslatedExpression TranslateSetterCallAssignment(Block block) |
|
|
|
|
{ |
|
|
|
|
if (!block.MatchInlineAssignBlock(out var call, out var value)) { |
|
|
|
@ -1991,6 +1996,10 @@ namespace ICSharpCode.Decompiler.CSharp
@@ -1991,6 +1996,10 @@ namespace ICSharpCode.Decompiler.CSharp
|
|
|
|
|
.WithILInstruction(defaultVal) |
|
|
|
|
.WithRR(new TypeResolveResult(defaultVal.Type)); |
|
|
|
|
break; |
|
|
|
|
case Block callWithNamedArgs when callWithNamedArgs.Kind == BlockKind.CallWithNamedArgs: |
|
|
|
|
expr = TranslateCallWithNamedArgs(callWithNamedArgs); |
|
|
|
|
initObjRR = new InitializedObjectResolveResult(expr.Type); |
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
throw new ArgumentException("given Block is invalid!"); |
|
|
|
|
} |
|
|
|
|