В недавнем 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
?);но есть ли способ вызвать несколько финализаций без этого изменения в тестируемом программном обеспечении?