test for #2551
This commit is contained in:
parent
a25a8bfe0e
commit
5f379b9b46
28
TestSuite/generics73.pas
Normal file
28
TestSuite/generics73.pas
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
type
|
||||
GenericBase<T> = class end;
|
||||
|
||||
GenericObject<T> = class end;
|
||||
|
||||
PartialContainer<T> = partial class end;
|
||||
|
||||
GPUCommandContainer<T> = class(GenericBase<T>) end;
|
||||
|
||||
// Можно сделать пред-описанием метода, чтоб обойтись без forward
|
||||
procedure p1<T>(o: PartialContainer<T>); where T: record; forward;
|
||||
|
||||
type
|
||||
// Обязательно описать предка после описания p1
|
||||
PartialContainer<T> = partial class(GPUCommandContainer<GenericObject<T>>) end;
|
||||
|
||||
procedure p0<T>(o: GenericBase<GenericObject<T>>); where T: record;
|
||||
begin end;
|
||||
|
||||
procedure p1<T>(o: PartialContainer<T>); where T: record;
|
||||
begin
|
||||
//Ошибка: Невозможно инстанцировать, так как тип T не является размерным
|
||||
p0(o);
|
||||
end;
|
||||
|
||||
begin
|
||||
p1(new PartialContainer<integer>());
|
||||
end.
|
||||
Loading…
Reference in a new issue