pascalabcnet/TestSuite/generics31.pas
Бондарев Иван 02fea6b4a2 bug fix #2147
2019-12-08 12:17:54 +01:00

28 lines
497 B
ObjectPascal

type
t1<T> = class
a := new integer[5];
end;
t2 = class
end;
procedure p1<T,TEl>(x: T); where T: t1<TEl>;
begin
assert(x.a.GetType.FullName = 'System.Int32[]'); // говорит что "t1<byte>", хотя должно быть "array of word"
end;
procedure p2<T>(x: T);
begin
assert(x.ToString = '2');
end;
procedure p3<T>(x: T); where T: class;
begin
assert(x.ToString = 'generics31.t2');
end;
begin
p1&<t1<byte>,byte>(new t1<byte>);
p2(2);
p3(new t2);
end.