В недавнем AdaCore Gem есть утверждение
Реализация Finalize немного сложнее: справочное руководство Ada указывает, что процедура Finalize всегда должна быть идемпотентной. Компилятор Ada может вызывать Finalize несколько раз для одного и того же объекта,
Мне нужно протестировать частный контролируемый тип,
type T is private;
private
type T is new Ada.Finalization.Controlled with ...
Я могу изменить источник, чтобы сделать тип явно управляемым
type T is new Ada.Finalization.Controlled with private;
, а затем просто вызвать Finalize (My_T);
(или даже My_T.Finalize
?); но есть ли способ вызвать несколько финализаций без этого изменения тестируемого программного обеспечения?