while Present (Prim) loop
if Chars (Node (Prim)) = Name_Op_Eq
and then not Is_Internal (Node (Prim))
- and then Present (First_Entity (Node (Prim)))
-- The predefined equality primitive must have exactly two
- -- formals whose type is this tagged type
+ -- formals whose type is this tagged type.
- and then Present (Last_Entity (Node (Prim)))
- and then Next_Entity (First_Entity (Node (Prim)))
- = Last_Entity (Node (Prim))
- and then Etype (First_Entity (Node (Prim))) = Tag_Typ
- and then Etype (Last_Entity (Node (Prim))) = Tag_Typ
+ and then Number_Formals (Node (Prim)) = 2
+ and then Etype (First_Formal (Node (Prim))) = Tag_Typ
+ and then Etype (Last_Formal (Node (Prim))) = Tag_Typ
then
Eq_Needed := False;
Eq_Name := No_Name;