Index: src/natools-constant_indefinite_ordered_maps.adb ================================================================== --- src/natools-constant_indefinite_ordered_maps.adb +++ src/natools-constant_indefinite_ordered_maps.adb @@ -995,10 +995,28 @@ ------------------------------ -- Updatable Map Operations -- ------------------------------ + + function Constant_Reference_For_Bugged_GNAT + (Container : aliased in Updatable_Map; + Position : in Cursor) + return Constant_Reference_Type is + begin + return Constant_Reference (Constant_Map (Container), Position); + end Constant_Reference_For_Bugged_GNAT; + + + function Constant_Reference_For_Bugged_GNAT + (Container : aliased in Updatable_Map; + Key : in Key_Type) + return Constant_Reference_Type is + begin + return Constant_Reference (Constant_Map (Container), Key); + end Constant_Reference_For_Bugged_GNAT; + function Reference (Container : aliased in out Updatable_Map; Position : in Cursor) return Reference_Type @@ -1035,17 +1053,19 @@ return (Backend => Container.Backend, Element => Container.Backend.Query.Data.Nodes (Position.Index).Element); end Reference; + procedure Update_Element (Container : in out Updatable_Map; Position : in Cursor; Process : not null access procedure (Key : in Key_Type; Element : in out Element_Type)) is + pragma Unreferenced (Container); Accessor : constant Backend_Refs.Accessor := Position.Backend.Query; begin Process.all (Accessor.Data.Nodes (Position.Index).Key.all, Accessor.Data.Nodes (Position.Index).Element.all); Index: src/natools-constant_indefinite_ordered_maps.ads ================================================================== --- src/natools-constant_indefinite_ordered_maps.ads +++ src/natools-constant_indefinite_ordered_maps.ads @@ -247,15 +247,25 @@ Position : in Cursor) return Constant_Map; type Updatable_Map is new Constant_Map with private - with Constant_Indexing => Constant_Reference, + with Constant_Indexing => Constant_Reference_For_Bugged_GNAT, Variable_Indexing => Reference, Default_Iterator => Iterate, Iterator_Element => Element_Type; pragma Preelaborable_Initialization (Updatable_Map); + + function Constant_Reference_For_Bugged_GNAT + (Container : aliased in Updatable_Map; + Position : in Cursor) + return Constant_Reference_Type; + + function Constant_Reference_For_Bugged_GNAT + (Container : aliased in Updatable_Map; + Key : in Key_Type) + return Constant_Reference_Type; procedure Update_Element (Container : in out Updatable_Map; Position : in Cursor; Process : not null access procedure (Key : in Key_Type;