pascalabcnet/TestSuite/implicitexplicit19.pas
Ivan Bondarev 62f031f0d0 #2553
2021-10-31 11:44:21 +01:00

24 lines
442 B
ObjectPascal

var i: integer;
type
t0<T> = class end;
t2<T> = class end;
t1 = class
static function operator implicit<T>(a: t0<t0<T>>): t1; where T: record;
begin
i := 1;
end;
static function operator implicit<T>(a: t2<t2<t2<T>>>): t1; where T: record;
begin
i := 2;
end;
end;
begin
var a: t0<t0<byte>>;
var a2: t2<t2<t2<byte>>>;
var k: t1 := a;
assert(i = 1);
k := a2;
assert(i = 2);
end.