2022-05-08 14:44:13 +03:00
|
|
|
|
type
|
|
|
|
|
|
i1 = interface
|
|
|
|
|
|
|
|
|
|
|
|
function GetHashCode(x: byte): byte;
|
|
|
|
|
|
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
t1 = class(i1)
|
|
|
|
|
|
public function GetHashCode(x: byte) := x;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure p1<T>(o: T); where T: I1;
|
|
|
|
|
|
begin
|
|
|
|
|
|
assert(o.GetHashCode(5) = 5);
|
2022-05-08 14:45:25 +03:00
|
|
|
|
assert(o.GetHashCode() = o.GetHashCode());
|
2022-05-08 14:44:13 +03:00
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
begin
|
|
|
|
|
|
p1&<I1>(new t1);
|
|
|
|
|
|
end.
|