This patch adds a formal function parameter "=" (L, R : Element_Type) to
SPARK containers. The equality that is used by default for Element_Type
after this patch is the primitive equality and not the predefined any
more. It also allows to use any function with the appropriate signature
for the equality function.
2019-08-19 Joffrey Huguet <huguet@adacore.com>
gcc/ada/
* libgnat/a-cfdlli.ads, libgnat/a-cfhama.ads,
libgnat/a-cfinve.ads, libgnat/a-cforma.ads,
libgnat/a-cofove.ads, libgnat/a-cofuma.ads,
libgnat/a-cofuve.ads: Add formal function parameter "=" (L, R :
Element_Type) to the generic packages.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@274643
138bc75d-0d04-0410-961f-
82ee72b054a4
+2019-08-19 Joffrey Huguet <huguet@adacore.com>
+
+ * libgnat/a-cfdlli.ads, libgnat/a-cfhama.ads,
+ libgnat/a-cfinve.ads, libgnat/a-cforma.ads,
+ libgnat/a-cofove.ads, libgnat/a-cofuma.ads,
+ libgnat/a-cofuve.ads: Add formal function parameter "=" (L, R :
+ Element_Type) to the generic packages.
+
2019-08-19 Eric Botcazou <ebotcazou@adacore.com>
* opt.ads: Clean up left-overs of earlier implementation in
generic
type Element_Type is private;
+ with function "=" (Left, Right : Element_Type) return Boolean is <>;
package Ada.Containers.Formal_Doubly_Linked_Lists with
SPARK_Mode
with function Equivalent_Keys
(Left : Key_Type;
Right : Key_Type) return Boolean is "=";
+ with function "=" (Left, Right : Element_Type) return Boolean is <>;
package Ada.Containers.Formal_Hashed_Maps with
SPARK_Mode
generic
type Index_Type is range <>;
type Element_Type (<>) is private;
+ with function "=" (Left, Right : Element_Type) return Boolean is <>;
Max_Size_In_Storage_Elements : Natural;
-- Maximum size of Vector elements in bytes. This has the same meaning as
-- in Ada.Containers.Bounded_Holders, with the same restrictions. Note that
type Element_Type is private;
with function "<" (Left, Right : Key_Type) return Boolean is <>;
+ with function "=" (Left, Right : Element_Type) return Boolean is <>;
package Ada.Containers.Formal_Ordered_Maps with
SPARK_Mode
generic
type Index_Type is range <>;
type Element_Type is private;
+ with function "=" (Left, Right : Element_Type) return Boolean is <>;
+
package Ada.Containers.Formal_Vectors with
SPARK_Mode
is
with function Equivalent_Keys
(Left : Key_Type;
Right : Key_Type) return Boolean is "=";
+ with function "=" (Left, Right : Element_Type) return Boolean is <>;
Enable_Handling_Of_Equivalence : Boolean := True;
-- This constant should only be set to False when no particular handling
-- should have at least one more element at the low end than Index_Type.
type Element_Type (<>) is private;
+ with function "=" (Left, Right : Element_Type) return Boolean is <>;
package Ada.Containers.Functional_Vectors with SPARK_Mode is