27 lines
619 B
ObjectPascal
27 lines
619 B
ObjectPascal
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. |