type t1=class static p0: Action; static procedure p1(p: Action); begin t1&.p0 := o1->p(o1); end; end; var i: integer; begin t1&.p1(x->begin i := x; end); t1&.p0(1); assert(i = 1); end.