[Ada] Ada2020: AI12-0400 Ambiguities associated with Vector
authorBob Duff <duff@adacore.com>
Thu, 3 Dec 2020 17:40:05 +0000 (12:40 -0500)
committerPierre-Marie de Rodat <derodat@adacore.com>
Thu, 17 Dec 2020 10:49:23 +0000 (05:49 -0500)
gcc/ada/

* libgnat/a-cbdlli.adb, libgnat/a-cbdlli.ads,
libgnat/a-cdlili.adb, libgnat/a-cdlili.ads,
libgnat/a-cidlli.adb, libgnat/a-cidlli.ads,
libgnat/a-cobove.adb, libgnat/a-cobove.ads,
libgnat/a-coinve.adb, libgnat/a-coinve.ads,
libgnat/a-convec.adb, libgnat/a-convec.ads: Add *_Vector
operations, remove default for Count, rename Append_One to be
Append.

12 files changed:
gcc/ada/libgnat/a-cbdlli.adb
gcc/ada/libgnat/a-cbdlli.ads
gcc/ada/libgnat/a-cdlili.adb
gcc/ada/libgnat/a-cdlili.ads
gcc/ada/libgnat/a-cidlli.adb
gcc/ada/libgnat/a-cidlli.ads
gcc/ada/libgnat/a-cobove.adb
gcc/ada/libgnat/a-cobove.ads
gcc/ada/libgnat/a-coinve.adb
gcc/ada/libgnat/a-coinve.ads
gcc/ada/libgnat/a-convec.adb
gcc/ada/libgnat/a-convec.ads

index a0c356d3adaa6209b98d4a54da9d6e8f194a1e2b..948b70689f97bb2de4e79a2a676e48b64ef121a7 100644 (file)
@@ -199,23 +199,19 @@ is
    procedure Append
      (Container : in out List;
       New_Item  : Element_Type;
-      Count     : Count_Type := 1)
+      Count     : Count_Type)
    is
    begin
       Insert (Container, No_Element, New_Item, Count);
    end Append;
 
-   ---------------
-   -- Append_One --
-   ---------------
-
-   procedure Append_One
+   procedure Append
      (Container : in out List;
       New_Item  : Element_Type)
    is
    begin
       Insert (Container, No_Element, New_Item, 1);
-   end Append_One;
+   end Append;
 
    ------------
    -- Assign --
index 183c01e26dcf1cefa5af89523f6ec82fc9ee2add..4574aa65afd461a100b0fb68703d8cb7c3efa9fb 100644 (file)
@@ -57,7 +57,7 @@ is
       Default_Iterator  => Iterate,
       Iterator_Element  => Element_Type,
       Aggregate         => (Empty        => Empty,
-                            Add_Unnamed  => Append_One);
+                            Add_Unnamed  => Append);
    pragma Preelaborable_Initialization (List);
 
    type Cursor is private;
@@ -151,9 +151,9 @@ is
    procedure Append
      (Container : in out List;
       New_Item  : Element_Type;
-      Count     : Count_Type := 1);
+      Count     : Count_Type);
 
-   procedure Append_One
+   procedure Append
      (Container : in out List;
       New_Item  : Element_Type);
 
index f07190ec2f43564d9e6262c82f4bf7c641e77bb7..08c29f2bcb666cac41220061c4f7d6764ccae12c 100644 (file)
@@ -158,23 +158,19 @@ is
    procedure Append
      (Container : in out List;
       New_Item  : Element_Type;
-      Count     : Count_Type := 1)
+      Count     : Count_Type)
    is
    begin
       Insert (Container, No_Element, New_Item, Count);
    end Append;
 
-   ---------------
-   -- Append_One --
-   ---------------
-
-   procedure Append_One
+   procedure Append
      (Container : in out List;
       New_Item  : Element_Type)
    is
    begin
       Insert (Container, No_Element, New_Item, 1);
-   end Append_One;
+   end Append;
 
    ------------
    -- Assign --
index 35c4352c8ca029b4288cc6b073dd74442d035289..53de78b4e5129f6bd7a0eb15731edfe8e6450eb3 100644 (file)
@@ -58,7 +58,7 @@ is
       Default_Iterator  => Iterate,
       Iterator_Element  => Element_Type,
       Aggregate         => (Empty       => Empty,
-                            Add_Unnamed => Append_One);
+                            Add_Unnamed => Append);
 
    pragma Preelaborable_Initialization (List);
 
@@ -154,9 +154,9 @@ is
    procedure Append
      (Container : in out List;
       New_Item  : Element_Type;
-      Count     : Count_Type := 1);
+      Count     : Count_Type);
 
-   procedure Append_One
+   procedure Append
      (Container : in out List;
       New_Item  : Element_Type);
 
index a62338f9665859818d5489908232d46a8238e89a..79df5a940b244c7a57623bd218628706a07276a0 100644 (file)
@@ -179,23 +179,19 @@ is
    procedure Append
      (Container : in out List;
       New_Item  : Element_Type;
-      Count     : Count_Type := 1)
+      Count     : Count_Type)
    is
    begin
       Insert (Container, No_Element, New_Item, Count);
    end Append;
 
-   ---------------
-   -- Append_One --
-   ---------------
-
-   procedure Append_One
+   procedure Append
      (Container : in out List;
       New_Item  : Element_Type)
    is
    begin
       Insert (Container, No_Element, New_Item, 1);
-   end Append_One;
+   end Append;
 
    ------------
    -- Assign --
index 5e63cf22e89e0406511ff7be913cfac77a8aec96..c75e5af7858be9148a4ca025e834d5fe11139d26 100644 (file)
@@ -57,7 +57,7 @@ is
       Default_Iterator  => Iterate,
       Iterator_Element  => Element_Type,
       Aggregate         => (Empty       => Empty,
-                            Add_Unnamed => Append_One);
+                            Add_Unnamed => Append);
 
    pragma Preelaborable_Initialization (List);
 
@@ -147,9 +147,9 @@ is
    procedure Append
      (Container : in out List;
       New_Item  : Element_Type;
-      Count     : Count_Type := 1);
+      Count     : Count_Type);
 
-   procedure Append_One
+   procedure Append
      (Container : in out List;
       New_Item  : Element_Type);
 
index 0408741b44f10d7e7be09be90fd115f05f45cbee..8a8b279a9c0f2a6259f373ded952823404c9c6ab 100644 (file)
@@ -321,9 +321,13 @@ package body Ada.Containers.Bounded_Vectors is
    -- Append --
    ------------
 
-   procedure Append (Container : in out Vector; New_Item : Vector) is
+   procedure Append
+     (Container : in out Vector;
+      New_Item  : Element_Type;
+      Count     : Count_Type)
+   is
    begin
-      if New_Item.Is_Empty then
+      if Count = 0 then
          return;
       end if;
 
@@ -331,16 +335,16 @@ package body Ada.Containers.Bounded_Vectors is
          raise Constraint_Error with "vector is already at its maximum length";
       end if;
 
-      Container.Insert (Container.Last + 1, New_Item);
+      Container.Insert (Container.Last + 1, New_Item, Count);
    end Append;
 
-   procedure Append
-     (Container : in out Vector;
-      New_Item  : Element_Type;
-      Count     : Count_Type := 1)
-   is
+   -------------------
+   -- Append_Vector --
+   -------------------
+
+   procedure Append_Vector (Container : in out Vector; New_Item : Vector) is
    begin
-      if Count = 0 then
+      if New_Item.Is_Empty then
          return;
       end if;
 
@@ -348,19 +352,19 @@ package body Ada.Containers.Bounded_Vectors is
          raise Constraint_Error with "vector is already at its maximum length";
       end if;
 
-      Container.Insert (Container.Last + 1, New_Item, Count);
-   end Append;
+      Container.Insert_Vector (Container.Last + 1, New_Item);
+   end Append_Vector;
 
-   ----------------
-   -- Append_One --
-   ----------------
+   ------------
+   -- Append --
+   ------------
 
-   procedure Append_One (Container : in out Vector;
-                         New_Item  :        Element_Type)
+   procedure Append (Container : in out Vector;
+                     New_Item  :        Element_Type)
    is
    begin
       Insert (Container, Last_Index (Container) + 1, New_Item, 1);
-   end Append_One;
+   end Append;
 
    --------------
    -- Capacity --
@@ -1243,7 +1247,7 @@ package body Ada.Containers.Bounded_Vectors is
       end if;
    end Insert;
 
-   procedure Insert
+   procedure Insert_Vector
      (Container : in out Vector;
       Before    : Extended_Index;
       New_Item  : Vector)
@@ -1309,9 +1313,9 @@ package body Ada.Containers.Bounded_Vectors is
 
          Container.Elements (B + N - Src'Length .. B + N - 1) := Src;
       end;
-   end Insert;
+   end Insert_Vector;
 
-   procedure Insert
+   procedure Insert_Vector
      (Container : in out Vector;
       Before    : Cursor;
       New_Item  : Vector)
@@ -1343,10 +1347,10 @@ package body Ada.Containers.Bounded_Vectors is
          Index := Before.Index;
       end if;
 
-      Insert (Container, Index, New_Item);
-   end Insert;
+      Insert_Vector (Container, Index, New_Item);
+   end Insert_Vector;
 
-   procedure Insert
+   procedure Insert_Vector
      (Container : in out Vector;
       Before    : Cursor;
       New_Item  : Vector;
@@ -1387,10 +1391,10 @@ package body Ada.Containers.Bounded_Vectors is
          Index := Before.Index;
       end if;
 
-      Insert (Container, Index, New_Item);
+      Insert_Vector (Container, Index, New_Item);
 
       Position := Cursor'(Container'Unchecked_Access, Index);
-   end Insert;
+   end Insert_Vector;
 
    procedure Insert
      (Container : in out Vector;
@@ -2028,23 +2032,24 @@ package body Ada.Containers.Bounded_Vectors is
    -- Prepend --
    -------------
 
-   procedure Prepend (Container : in out Vector; New_Item : Vector) is
-   begin
-      Insert (Container, Index_Type'First, New_Item);
-   end Prepend;
-
    procedure Prepend
      (Container : in out Vector;
       New_Item  : Element_Type;
       Count     : Count_Type := 1)
    is
    begin
-      Insert (Container,
-              Index_Type'First,
-              New_Item,
-              Count);
+      Insert (Container, Index_Type'First, New_Item, Count);
    end Prepend;
 
+   --------------------
+   -- Prepend_Vector --
+   --------------------
+
+   procedure Prepend_Vector (Container : in out Vector; New_Item : Vector) is
+   begin
+      Insert_Vector (Container, Index_Type'First, New_Item);
+   end Prepend_Vector;
+
    --------------
    -- Previous --
    --------------
index ab4ce4e2f9925c45fa2239504a1770e21605130d..324ca840378b88f9c92508c65dc3b5ce13a71951 100644 (file)
@@ -61,7 +61,7 @@ package Ada.Containers.Bounded_Vectors is
       Default_Iterator  => Iterate,
       Iterator_Element  => Element_Type,
       Aggregate         => (Empty          => Empty,
-                            Add_Unnamed    => Append_One,
+                            Add_Unnamed    => Append,
                             New_Indexed    => New_Vector,
                             Assign_Indexed => Replace_Element);
 
@@ -190,22 +190,41 @@ package Ada.Containers.Bounded_Vectors is
 
    procedure Move (Target : in out Vector; Source : in out Vector);
 
-   procedure Insert
+   procedure Insert_Vector
      (Container : in out Vector;
       Before    : Extended_Index;
       New_Item  : Vector);
 
    procedure Insert
+     (Container : in out Vector;
+      Before    : Extended_Index;
+      New_Item  : Vector) renames Insert_Vector;
+   --  Retained for now for compatibility; AI12-0400 will remove this.
+
+   procedure Insert_Vector
      (Container : in out Vector;
       Before    : Cursor;
       New_Item  : Vector);
 
    procedure Insert
+     (Container : in out Vector;
+      Before    : Cursor;
+      New_Item  : Vector) renames Insert_Vector;
+   --  Retained for now for compatibility; AI12-0400 will remove this.
+
+   procedure Insert_Vector
      (Container : in out Vector;
       Before    : Cursor;
       New_Item  : Vector;
       Position  : out Cursor);
 
+   procedure Insert
+     (Container : in out Vector;
+      Before    : Cursor;
+      New_Item  : Vector;
+      Position  : out Cursor) renames Insert_Vector;
+   --  Retained for now for compatibility; AI12-0400 will remove this.
+
    procedure Insert
      (Container : in out Vector;
       Before    : Extended_Index;
@@ -236,27 +255,36 @@ package Ada.Containers.Bounded_Vectors is
       Position  : out Cursor;
       Count     : Count_Type := 1);
 
-   procedure Prepend
+   procedure Prepend_Vector
      (Container : in out Vector;
       New_Item  : Vector);
 
+   procedure Prepend
+     (Container : in out Vector;
+      New_Item  : Vector) renames Prepend_Vector;
+   --  Retained for now for compatibility; AI12-0400 will remove this.
+
    procedure Prepend
      (Container : in out Vector;
       New_Item  : Element_Type;
       Count     : Count_Type := 1);
 
-   procedure Append
+   procedure Append_Vector
      (Container : in out Vector;
       New_Item  : Vector);
 
+   procedure Append
+     (Container : in out Vector;
+      New_Item  : Vector) renames Append_Vector;
+   --  Retained for now for compatibility; AI12-0400 will remove this.
+
    procedure Append
      (Container : in out Vector;
       New_Item  : Element_Type;
-      Count     : Count_Type := 1);
+      Count     : Count_Type);
 
-   procedure Append_One (Container : in out Vector;
-                         New_Item  :        Element_Type);
-   --  Ada_2020 aggregate operation.
+   procedure Append (Container : in out Vector;
+                     New_Item  :        Element_Type);
 
    procedure Insert_Space
      (Container : in out Vector;
index 10711ffeca98e1eeb67a0520247f2ece5bfb8699..051aa711d6a41bd940b1955d7df9efd045c67d80 100644 (file)
@@ -67,8 +67,8 @@ is
    begin
       return Result : Vector do
          Reserve_Capacity (Result, Length (Left) + Length (Right));
-         Append (Result, Left);
-         Append (Result, Right);
+         Append_Vector (Result, Left);
+         Append_Vector (Result, Right);
       end return;
    end "&";
 
@@ -76,7 +76,7 @@ is
    begin
       return Result : Vector do
          Reserve_Capacity (Result, Length (Left) + 1);
-         Append (Result, Left);
+         Append_Vector (Result, Left);
          Append (Result, Right);
       end return;
    end "&";
@@ -86,7 +86,7 @@ is
       return Result : Vector do
          Reserve_Capacity (Result, 1 + Length (Right));
          Append (Result, Left);
-         Append (Result, Right);
+         Append_Vector (Result, Right);
       end return;
    end "&";
 
@@ -176,25 +176,25 @@ is
       end;
    end Adjust;
 
-   ------------
-   -- Append --
-   ------------
+   -------------------
+   -- Append_Vector --
+   -------------------
 
-   procedure Append (Container : in out Vector; New_Item : Vector) is
+   procedure Append_Vector (Container : in out Vector; New_Item : Vector) is
    begin
       if Is_Empty (New_Item) then
          return;
       elsif Checks and then Container.Last = Index_Type'Last then
          raise Constraint_Error with "vector is already at its maximum length";
       else
-         Insert (Container, Container.Last + 1, New_Item);
+         Insert_Vector (Container, Container.Last + 1, New_Item);
       end if;
-   end Append;
+   end Append_Vector;
 
    procedure Append
      (Container : in out Vector;
       New_Item  : Element_Type;
-      Count     : Count_Type := 1)
+      Count     : Count_Type)
    is
    begin
       --  In the general case, we pass the buck to Insert, but for efficiency,
@@ -229,16 +229,16 @@ is
       end if;
    end Append;
 
-   ----------------
-   -- Append_One --
-   ----------------
+   ------------
+   -- Append --
+   ------------
 
-   procedure Append_One (Container : in out Vector;
+   procedure Append (Container : in out Vector;
                         New_Item   :        Element_Type)
    is
    begin
       Insert (Container, Last_Index (Container) + 1, New_Item, 1);
-   end Append_One;
+   end Append;
 
    ----------------------
    -- Append_Slow_Path --
@@ -269,7 +269,7 @@ is
          return;
       else
          Target.Clear;
-         Target.Append (Source);
+         Target.Append_Vector (Source);
       end if;
    end Assign;
 
@@ -1619,7 +1619,7 @@ is
       end;
    end Insert;
 
-   procedure Insert
+   procedure Insert_Vector
      (Container : in out Vector;
       Before    : Extended_Index;
       New_Item  : Vector)
@@ -1766,9 +1766,9 @@ is
             Dst_Index := Dst_Index + 1;
          end loop;
       end;
-   end Insert;
+   end Insert_Vector;
 
-   procedure Insert
+   procedure Insert_Vector
      (Container : in out Vector;
       Before    : Cursor;
       New_Item  : Vector)
@@ -1798,10 +1798,10 @@ is
          Index := Before.Index;
       end if;
 
-      Insert (Container, Index, New_Item);
-   end Insert;
+      Insert_Vector (Container, Index, New_Item);
+   end Insert_Vector;
 
-   procedure Insert
+   procedure Insert_Vector
      (Container : in out Vector;
       Before    : Cursor;
       New_Item  : Vector;
@@ -1838,10 +1838,10 @@ is
          Index := Before.Index;
       end if;
 
-      Insert (Container, Index, New_Item);
+      Insert_Vector (Container, Index, New_Item);
 
       Position := (Container'Unrestricted_Access, Index);
-   end Insert;
+   end Insert_Vector;
 
    procedure Insert
      (Container : in out Vector;
@@ -2559,11 +2559,6 @@ is
    -- Prepend --
    -------------
 
-   procedure Prepend (Container : in out Vector; New_Item : Vector) is
-   begin
-      Insert (Container, Index_Type'First, New_Item);
-   end Prepend;
-
    procedure Prepend
      (Container : in out Vector;
       New_Item  : Element_Type;
@@ -2573,6 +2568,15 @@ is
       Insert (Container, Index_Type'First, New_Item, Count);
    end Prepend;
 
+   -------------
+   -- Prepend_Vector --
+   -------------
+
+   procedure Prepend_Vector (Container : in out Vector; New_Item : Vector) is
+   begin
+      Insert_Vector (Container, Index_Type'First, New_Item);
+   end Prepend_Vector;
+
    --------------
    -- Previous --
    --------------
index 593b63e8dca411b278454b6b81d9e06195c67ec0..c9364c7a3e334ee910a4514026fe09f3c551473c 100644 (file)
@@ -64,7 +64,7 @@ is
      Default_Iterator  => Iterate,
      Iterator_Element  => Element_Type,
      Aggregate         => (Empty          => Empty_Vector,
-                           Add_Unnamed    => Append_One,
+                           Add_Unnamed    => Append,
                            New_Indexed    => New_Vector,
                            Assign_Indexed => Replace_Element);
 
@@ -195,22 +195,41 @@ is
 
    procedure Move (Target : in out Vector; Source : in out Vector);
 
-   procedure Insert
+   procedure Insert_Vector
      (Container : in out Vector;
       Before    : Extended_Index;
       New_Item  : Vector);
 
    procedure Insert
+     (Container : in out Vector;
+      Before    : Extended_Index;
+      New_Item  : Vector) renames Insert_Vector;
+   --  Retained for now for compatibility; AI12-0400 will remove this.
+
+   procedure Insert_Vector
      (Container : in out Vector;
       Before    : Cursor;
       New_Item  : Vector);
 
    procedure Insert
+     (Container : in out Vector;
+      Before    : Cursor;
+      New_Item  : Vector) renames Insert_Vector;
+   --  Retained for now for compatibility; AI12-0400 will remove this.
+
+   procedure Insert_Vector
      (Container : in out Vector;
       Before    : Cursor;
       New_Item  : Vector;
       Position  : out Cursor);
 
+   procedure Insert
+     (Container : in out Vector;
+      Before    : Cursor;
+      New_Item  : Vector;
+      Position  : out Cursor) renames Insert_Vector;
+   --  Retained for now for compatibility; AI12-0400 will remove this.
+
    procedure Insert
      (Container : in out Vector;
       Before    : Extended_Index;
@@ -230,26 +249,36 @@ is
       Position  : out Cursor;
       Count     : Count_Type := 1);
 
-   procedure Prepend
+   procedure Prepend_Vector
      (Container : in out Vector;
       New_Item  : Vector);
 
+   procedure Prepend
+     (Container : in out Vector;
+      New_Item  : Vector) renames Prepend_Vector;
+   --  Retained for now for compatibility; AI12-0400 will remove this.
+
    procedure Prepend
      (Container : in out Vector;
       New_Item  : Element_Type;
       Count     : Count_Type := 1);
 
-   procedure Append
+   procedure Append_Vector
      (Container : in out Vector;
       New_Item  : Vector);
 
+   procedure Append
+     (Container : in out Vector;
+      New_Item  : Vector) renames Append_Vector;
+   --  Retained for now for compatibility; AI12-0400 will remove this.
+
    procedure Append
      (Container : in out Vector;
       New_Item  : Element_Type;
-      Count     : Count_Type := 1);
+      Count     : Count_Type);
 
-   procedure Append_One (Container : in out Vector;
-                        New_Item  :        Element_Type);
+   procedure Append (Container : in out Vector;
+                     New_Item  :        Element_Type);
 
    procedure Insert_Space
      (Container : in out Vector;
index a43be970e34f8468b0768e3d4cf8773262860b53..fec72cc21b3773b569114897b4c32fe7cb837d7b 100644 (file)
@@ -64,8 +64,8 @@ is
    begin
       return Result : Vector do
          Reserve_Capacity (Result, Length (Left) + Length (Right));
-         Append (Result, Left);
-         Append (Result, Right);
+         Append_Vector (Result, Left);
+         Append_Vector (Result, Right);
       end return;
    end "&";
 
@@ -73,7 +73,7 @@ is
    begin
       return Result : Vector do
          Reserve_Capacity (Result, Length (Left) + 1);
-         Append (Result, Left);
+         Append_Vector (Result, Left);
          Append (Result, Right);
       end return;
    end "&";
@@ -83,7 +83,7 @@ is
       return Result : Vector do
          Reserve_Capacity (Result, 1 + Length (Right));
          Append (Result, Left);
-         Append (Result, Right);
+         Append_Vector (Result, Right);
       end return;
    end "&";
 
@@ -167,21 +167,10 @@ is
    -- Append --
    ------------
 
-   procedure Append (Container : in out Vector; New_Item : Vector) is
-   begin
-      if Is_Empty (New_Item) then
-         return;
-      elsif Checks and then Container.Last = Index_Type'Last then
-         raise Constraint_Error with "vector is already at its maximum length";
-      else
-         Insert (Container, Container.Last + 1, New_Item);
-      end if;
-   end Append;
-
    procedure Append
      (Container : in out Vector;
       New_Item  : Element_Type;
-      Count     : Count_Type := 1)
+      Count     : Count_Type)
    is
    begin
       --  In the general case, we pass the buck to Insert, but for efficiency,
@@ -210,16 +199,31 @@ is
       end if;
    end Append;
 
-   ----------------
-   -- Append_One --
-   ----------------
+   -------------------
+   -- Append_Vector --
+   -------------------
+
+   procedure Append_Vector (Container : in out Vector; New_Item : Vector) is
+   begin
+      if Is_Empty (New_Item) then
+         return;
+      elsif Checks and then Container.Last = Index_Type'Last then
+         raise Constraint_Error with "vector is already at its maximum length";
+      else
+         Insert_Vector (Container, Container.Last + 1, New_Item);
+      end if;
+   end Append_Vector;
+
+   ------------
+   -- Append --
+   ------------
 
-   procedure Append_One (Container : in out Vector;
-                         New_Item  :        Element_Type)
+   procedure Append (Container : in out Vector;
+                     New_Item  :        Element_Type)
    is
    begin
       Insert (Container, Last_Index (Container) + 1, New_Item, 1);
-   end Append_One;
+   end Append;
 
    ----------------------
    -- Append_Slow_Path --
@@ -250,7 +254,7 @@ is
          return;
       else
          Target.Clear;
-         Target.Append (Source);
+         Target.Append_Vector (Source);
       end if;
    end Assign;
 
@@ -1310,7 +1314,7 @@ is
       end;
    end Insert;
 
-   procedure Insert
+   procedure Insert_Vector
      (Container : in out Vector;
       Before    : Extended_Index;
       New_Item  : Vector)
@@ -1429,9 +1433,9 @@ is
 
          Container.Elements.EA (K .. J) := Src;
       end;
-   end Insert;
+   end Insert_Vector;
 
-   procedure Insert
+   procedure Insert_Vector
      (Container : in out Vector;
       Before    : Cursor;
       New_Item  : Vector)
@@ -1461,10 +1465,10 @@ is
          Index := Before.Index;
       end if;
 
-      Insert (Container, Index, New_Item);
-   end Insert;
+      Insert_Vector (Container, Index, New_Item);
+   end Insert_Vector;
 
-   procedure Insert
+   procedure Insert_Vector
      (Container : in out Vector;
       Before    : Cursor;
       New_Item  : Vector;
@@ -1501,10 +1505,10 @@ is
          Index := Before.Index;
       end if;
 
-      Insert (Container, Index, New_Item);
+      Insert_Vector (Container, Index, New_Item);
 
       Position := (Container'Unrestricted_Access, Index);
-   end Insert;
+   end Insert_Vector;
 
    procedure Insert
      (Container : in out Vector;
@@ -2266,11 +2270,6 @@ is
    -- Prepend --
    -------------
 
-   procedure Prepend (Container : in out Vector; New_Item : Vector) is
-   begin
-      Insert (Container, Index_Type'First, New_Item);
-   end Prepend;
-
    procedure Prepend
      (Container : in out Vector;
       New_Item  : Element_Type;
@@ -2280,6 +2279,15 @@ is
       Insert (Container, Index_Type'First, New_Item, Count);
    end Prepend;
 
+   --------------------
+   -- Prepend_Vector --
+   --------------------
+
+   procedure Prepend_Vector (Container : in out Vector; New_Item : Vector) is
+   begin
+      Insert_Vector (Container, Index_Type'First, New_Item);
+   end Prepend_Vector;
+
    --------------
    -- Previous --
    --------------
index f969e6f691e2e046f0af7a05f7d9f55b3a60630b..1d257a05bed6e402b8d2c243e0b48219eafbb802 100644 (file)
@@ -95,7 +95,7 @@ is
       Default_Iterator  => Iterate,
       Iterator_Element  => Element_Type,
       Aggregate         => (Empty          => Empty,
-                            Add_Unnamed    => Append_One,
+                            Add_Unnamed    => Append,
                             New_Indexed    => New_Vector,
                             Assign_Indexed => Replace_Element);
 
@@ -334,36 +334,48 @@ is
      with Pre => First = Index_Type'First;
    --  Ada_2020 aggregate operation.
 
-   procedure Insert
+   procedure Insert_Vector
      (Container : in out Vector;
       Before    : Extended_Index;
       New_Item  : Vector);
    --  If Before is not in the range First_Index (Container) .. Last_Index
    --  (Container) + 1, then Constraint_Error is propagated. If
-   --  Length(New_Item) is 0, then Insert does nothing. Otherwise, it computes
-   --  the new length NL as the sum of the current length and Length
+   --  Length(New_Item) is 0, then Insert_Vector does nothing. Otherwise, it
+   --  computes the new length NL as the sum of the current length and Length
    --  (New_Item); if the value of Last appropriate for length NL would be
    --  greater than Index_Type'Last then Constraint_Error is propagated.
    --
    --  If the current vector capacity is less than NL, Reserve_Capacity
-   --  (Container, NL) is called to increase the vector capacity. Then Insert
-   --  slides the elements in the range Before .. Last_Index (Container) up by
-   --  Length(New_Item) positions, and then copies the elements of New_Item to
-   --  the positions starting at Before. Any exception raised during the
-   --  copying is propagated.
+   --  (Container, NL) is called to increase the vector capacity. Then
+   --  Insert_Vector slides the elements in the range Before .. Last_Index
+   --  (Container) up by Length(New_Item) positions, and then copies the
+   --  elements of New_Item to the positions starting at Before. Any exception
+   --  raised during the copying is propagated.
 
    procedure Insert
+     (Container : in out Vector;
+      Before    : Extended_Index;
+      New_Item  : Vector) renames Insert_Vector;
+   --  Retained for now for compatibility; AI12-0400 will remove this.
+
+   procedure Insert_Vector
      (Container : in out Vector;
       Before    : Cursor;
       New_Item  : Vector);
    --  If Before is not No_Element, and does not designate an element in
    --  Container, then Program_Error is propagated. Otherwise, if
-   --  Length(New_Item) is 0, then Insert does nothing. If Before is
-   --  No_Element, then the call is equivalent to Insert (Container, Last_Index
-   --  (Container) + 1, New_Item); otherwise the call is equivalent to Insert
-   --  (Container, To_Index (Before), New_Item);
+   --  Length(New_Item) is 0, then Insert_Vector does nothing. If Before is
+   --  No_Element, then the call is equivalent to Insert_Vector (Container,
+   --  Last_Index (Container) + 1, New_Item); otherwise the call is equivalent
+   --  to Insert_Vector (Container, To_Index (Before), New_Item);
 
    procedure Insert
+     (Container : in out Vector;
+      Before    : Cursor;
+      New_Item  : Vector) renames Insert_Vector;
+   --  Retained for now for compatibility; AI12-0400 will remove this.
+
+   procedure Insert_Vector
      (Container : in out Vector;
       Before    : Cursor;
       New_Item  : Vector;
@@ -371,22 +383,31 @@ is
    --  If Before is not No_Element, and does not designate an element in
    --  Container, then Program_Error is propagated. If Before equals
    --  No_Element, then let T be Last_Index (Container) + 1; otherwise, let T
-   --  be To_Index (Before). Insert (Container, T, New_Item) is called, and
-   --  then Position is set to To_Cursor (Container, T).
+   --  be To_Index (Before). Insert_Vector (Container, T, New_Item) is called,
+   --  and then Position is set to To_Cursor (Container, T).
+
+   procedure Insert
+     (Container : in out Vector;
+      Before    : Cursor;
+      New_Item  : Vector;
+      Position  : out Cursor) renames Insert_Vector;
+   --  Retained for now for compatibility; AI12-0400 will remove this.
 
    procedure Insert
      (Container : in out Vector;
       Before    : Extended_Index;
       New_Item  : Element_Type;
       Count     : Count_Type := 1);
-   --  Equivalent to Insert (Container, Before, To_Vector (New_Item, Count));
+   --  Equivalent to:
+   --  Insert_Vector (Container, Before, To_Vector (New_Item, Count));
 
    procedure Insert
      (Container : in out Vector;
       Before    : Cursor;
       New_Item  : Element_Type;
       Count     : Count_Type := 1);
-   --  Equivalent to Insert (Container, Before, To_Vector (New_Item, Count));
+   --  Equivalent to:
+   --  Insert_Vector (Container, Before, To_Vector (New_Item, Count));
 
    procedure Insert
      (Container : in out Vector;
@@ -395,7 +416,7 @@ is
       Position  : out Cursor;
       Count     : Count_Type := 1);
    --  Equivalent to
-   --  Insert (Container, Before, To_Vector (New_Item, Count), Position);
+   --  Insert_Vector (Container, Before, To_Vector (New_Item, Count), Position)
 
    procedure Insert
      (Container : in out Vector;
@@ -425,11 +446,16 @@ is
    --  be To_Index (Before). Insert (Container, T, Count) is called, and then
    --  Position is set to To_Cursor (Container, T).
 
-   procedure Prepend
+   procedure Prepend_Vector
      (Container : in out Vector;
       New_Item  : Vector);
    --  Equivalent to Insert (Container, First_Index (Container), New_Item).
 
+   procedure Prepend
+     (Container : in out Vector;
+      New_Item  : Vector) renames Prepend_Vector;
+   --  Retained for now for compatibility; AI12-0400 will remove this.
+
    procedure Prepend
      (Container : in out Vector;
       New_Item  : Element_Type;
@@ -437,21 +463,25 @@ is
    --  Equivalent to Insert (Container, First_Index (Container), New_Item,
    --  Count).
 
-   procedure Append
+   procedure Append_Vector
      (Container : in out Vector;
       New_Item  : Vector);
    --  Equivalent to Insert (Container, Last_Index (Container) + 1, New_Item).
 
+   procedure Append
+     (Container : in out Vector;
+      New_Item  : Vector) renames Append_Vector;
+   --  Retained for now for compatibility; AI12-0400 will remove this.
+
    procedure Append
      (Container : in out Vector;
       New_Item  : Element_Type;
-      Count     : Count_Type := 1);
+      Count     : Count_Type);
    --  Equivalent to Insert (Container, Last_Index (Container) + 1, New_Item,
    --  Count).
 
-   procedure Append_One (Container : in out Vector;
-                         New_Item  :        Element_Type);
-   --  Ada_2020 aggregate operation.
+   procedure Append (Container : in out Vector;
+                     New_Item  :        Element_Type);
 
    procedure Insert_Space
      (Container : in out Vector;