pascalabcnet/TestSuite/lambdas_generics9.pas

25 lines
355 B
ObjectPascal
Raw Permalink Normal View History

2020-12-28 20:16:22 +03:00
type
t0 = abstract class end;
t1<T> = class
where T: t0, constructor;
i: byte;
function MakeT := new T;
function f1(x: byte): ()->T := ()->
begin
i := x;
Result := MakeT;
end;
end;
t2 = class(t0) end;
begin
var a := new t1<t2>;
var obj := a.f1(5)();
assert(a.i = 5);
end.