1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- {
- 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.
|