diff --git a/ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs b/ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs index e4502dd35..c1d13a79b 100644 --- a/ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs +++ b/ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs @@ -568,7 +568,9 @@ namespace ICSharpCode.Decompiler.CSharp method = ((LdVirtFtn)func).Method; } var target = TranslateTarget(method, inst.Arguments[0], func.OpCode == OpCode.LdFtn); - return new ObjectCreateExpression(ConvertType(inst.Method.DeclaringType), new MemberReferenceExpression(target, method.Name)) + var mre = new MemberReferenceExpression(target, method.Name); + mre.TypeArguments.AddRange(method.TypeArguments.Select(a => ConvertType(a))); + return new ObjectCreateExpression(ConvertType(inst.Method.DeclaringType), mre) .WithILInstruction(inst) .WithRR(new ConversionResolveResult( inst.Method.DeclaringType,