From 5f379b9b468262989a695f15eab277915623fe1c Mon Sep 17 00:00:00 2001 From: Ivan Bondarev Date: Thu, 28 Dec 2023 12:05:48 +0100 Subject: [PATCH] test for #2551 --- TestSuite/generics73.pas | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 TestSuite/generics73.pas diff --git a/TestSuite/generics73.pas b/TestSuite/generics73.pas new file mode 100644 index 000000000..50b41fe29 --- /dev/null +++ b/TestSuite/generics73.pas @@ -0,0 +1,28 @@ +type + GenericBase = class end; + + GenericObject = class end; + + PartialContainer = partial class end; + + GPUCommandContainer = class(GenericBase) end; + +// Можно сделать пред-описанием метода, чтоб обойтись без forward +procedure p1(o: PartialContainer); where T: record; forward; + +type + // Обязательно описать предка после описания p1 + PartialContainer = partial class(GPUCommandContainer>) end; + +procedure p0(o: GenericBase>); where T: record; +begin end; + +procedure p1(o: PartialContainer); where T: record; +begin + //Ошибка: Невозможно инстанцировать, так как тип T не является размерным + p0(o); +end; + +begin + p1(new PartialContainer()); +end. \ No newline at end of file