|
|
|
@ -349,14 +349,17 @@ namespace ICSharpCode.Decompiler.IL
@@ -349,14 +349,17 @@ namespace ICSharpCode.Decompiler.IL
|
|
|
|
|
|
|
|
|
|
partial class DynamicInvokeConstructorInstruction |
|
|
|
|
{ |
|
|
|
|
readonly IType resultType; |
|
|
|
|
|
|
|
|
|
public IReadOnlyList<CSharpArgumentInfo> ArgumentInfo { get; } |
|
|
|
|
|
|
|
|
|
public DynamicInvokeConstructorInstruction(CSharpBinderFlags binderFlags, IType context, CSharpArgumentInfo[] argumentInfo, ILInstruction[] arguments) |
|
|
|
|
public DynamicInvokeConstructorInstruction(CSharpBinderFlags binderFlags, IType type, IType context, CSharpArgumentInfo[] argumentInfo, ILInstruction[] arguments) |
|
|
|
|
: base(OpCode.DynamicInvokeConstructorInstruction, binderFlags, context) |
|
|
|
|
{ |
|
|
|
|
ArgumentInfo = argumentInfo; |
|
|
|
|
Arguments = new InstructionCollection<ILInstruction>(this, 0); |
|
|
|
|
Arguments.AddRange(arguments); |
|
|
|
|
this.resultType = type; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public override void WriteTo(ITextOutput output, ILAstWritingOptions options) |
|
|
|
@ -365,11 +368,12 @@ namespace ICSharpCode.Decompiler.IL
@@ -365,11 +368,12 @@ namespace ICSharpCode.Decompiler.IL
|
|
|
|
|
output.Write(OpCode); |
|
|
|
|
WriteBinderFlags(output, options); |
|
|
|
|
output.Write(' '); |
|
|
|
|
resultType?.WriteTo(output); |
|
|
|
|
output.Write(".ctor"); |
|
|
|
|
WriteArgumentList(output, options, Arguments.Zip(ArgumentInfo)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public override StackType ResultType => StackType.O; |
|
|
|
|
public override StackType ResultType => resultType?.GetStackType() ?? StackType.Unknown; |
|
|
|
|
|
|
|
|
|
public override CSharpArgumentInfo GetArgumentInfoOfChild(int index) |
|
|
|
|
{ |
|
|
|
|