pascalabcnet/TestSuite/partial_generics3.pas

27 lines
619 B
ObjectPascal
Raw Permalink Normal View History

2021-10-05 21:45:56 +03:00
var i: integer;
type
t1<T> = class
procedure p0;
begin
i := 1;
end;
end;
// Обязательно промежуточный класс между t1 и t3
t2<T> = partial class(t1<T>) end;
// Обязательно t3 НЕ шаблонный
t3 = partial class(t2<byte>)
end;
// Обязательно объявить t2 и t3 дважды
t2<T> = partial class(t1<T>) end;
t3 = partial class(t2<byte>)
// Обязательно вызвать p0 из второго тела t3
procedure p1 := self.p0;
end;
begin
t3.Create.p1;
assert(i = 1);
end.