From 1368210c79d85aecc3743d14e85cf84d5c134549 Mon Sep 17 00:00:00 2001 From: Ivan Bondarev Date: Wed, 29 Dec 2021 15:02:15 +0100 Subject: [PATCH] #2595 --- TestSuite/generics60.pas | 16 ++++++++++++++++ TreeConverter/TreeRealization/generics.cs | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 TestSuite/generics60.pas diff --git a/TestSuite/generics60.pas b/TestSuite/generics60.pas new file mode 100644 index 000000000..84dfe31d2 --- /dev/null +++ b/TestSuite/generics60.pas @@ -0,0 +1,16 @@ +type + t1 = class + + function f(o: T2) := default(T); + + end; + +function f: T; +begin + var o: t1 := new t1; + Result := o.f(0); +end; + +begin + assert(f& = 0); +end. \ No newline at end of file diff --git a/TreeConverter/TreeRealization/generics.cs b/TreeConverter/TreeRealization/generics.cs index 03f351e4e..6d5793b77 100644 --- a/TreeConverter/TreeRealization/generics.cs +++ b/TreeConverter/TreeRealization/generics.cs @@ -1746,7 +1746,7 @@ namespace PascalABCCompiler.TreeRealization cmn.overrided_method = common_orig.overrided_method; if (orig_fn.is_generic_function) { - cmn.return_value_type = generic_convertions.determine_type(cmn.return_value_type, meth_inst_pars, true); + cmn.return_value_type = generic_convertions.determine_type(cmn.return_value_type, meth_inst_pars, true, orig_tpars); } if (orig_fn is common_function_node) {