{$mode tp}
{ args for destructors
  are allowed in TP mode for compatibility only PM }

program   test_destructor_with_args;

var
  z : longint;

  type
    tt = object
     constructor dummy;
     destructor done(x : longint);virtual;
    end;

  constructor tt.dummy;
    begin
    end;

  destructor tt.done;
    begin
      Writeln('x in tt.done is ',x);
      z:=x;
    end;

  var
    pt : ^tt;

begin
  Writeln('ln(5)=',ln(5));
  new(pt,dummy);
  pt^.done(4);
  if z<>4 then
    Halt(1);
  pt^.dummy;
  dispose(pt,done(5));
  if z<>5 then
    Halt(1);
end.