123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- {
- this file checks that calling done from init is
- done correctly
- }
- program test_init_done;
- type
- pobject = ^tobject;
- tobject = object
- val : longint;
- constructor init (call_done : boolean);
- destructor done; virtual;
- procedure check;
- end;
- constructor tobject.init (call_done : boolean);
- begin
- val:=7;
- if call_done then
- begin
- done;
- fail;
- end;
- end;
- destructor tobject.done;
- begin
- check;
- end;
- procedure tobject.check;
- begin
- if val<>7 then
- begin
- writeln('Error in codegeneration');
- halt(1);
- end;
- end;
- var
- obj1 : tobject;
- obj2 : pobject;
- begin
- obj1.init(false);
- obj1.done;
- new(obj2,init(true));
- if assigned(obj2) then
- begin
- writeln('Error in codegeneration of fail');
- halt(1);
- end;
- end.
|