var i: integer; type t1 = class static function operator implicit(o: T): t1; begin i := 1; end; end; procedure p1; begin var a: t1 := new t1(); //Ошибка: Возможны два преобразования типа: к типу t1 и к типу t1 var b := if false then a else nil; assert(i = 0); b := nil; assert(i = 0); var v: T; b := v; assert(i = 1); end; begin p1&; end.