var o: System.Type; type t1 = class static function operator implicit(val: T): t1; begin o := typeof(T); end; end; t2 = class end; begin var a: t1 := new t2; assert(o = typeof(t2)); end.