else
Remove_Abstract_Operations (N);
end if;
-
- End_Interp_List;
end if;
-- Check the accessibility level for actuals for explicitly aliased
Error_Msg_N ("no legal interpretation for indexed component", N);
Set_Is_Overloaded (N, False);
end if;
-
- End_Interp_List;
end Process_Overloaded_Indexed_Component;
-- Start of processing for Analyze_Indexed_Component_Form
Get_First_Interp (N, I, It);
while Present (It.Nam) loop
+ -- Avoid making duplicate entries in overloads
+
+ if Name = It.Nam
+ and then Base_Type (It.Typ) = Base_Type (T)
+ then
+ return;
+
-- A user-defined subprogram hides another declared at an outer
-- level, or one that is use-visible. So return if previous
-- definition hides new one (which is either in an outer
-- If this is a universal operation, retain the operator in case
-- preference rule applies.
- if (((Ekind (Name) = E_Function or else Ekind (Name) = E_Procedure)
+ elsif ((Ekind (Name) in E_Function | E_Procedure
and then Ekind (Name) = Ekind (It.Nam))
or else (Ekind (Name) = E_Operator
and then Ekind (It.Nam) = E_Function))
return;
end if;
- -- Avoid making duplicate entries in overloads
-
- elsif Name = It.Nam
- and then Base_Type (It.Typ) = Base_Type (T)
- then
- return;
-
-- Otherwise keep going
else
end if;
end Disambiguate;
- ---------------------
- -- End_Interp_List --
- ---------------------
-
- procedure End_Interp_List is
- begin
- All_Interp.Table (All_Interp.Last) := No_Interp;
- All_Interp.Increment_Last;
- end End_Interp_List;
-
-------------------------
-- Entity_Matches_Spec --
-------------------------
-- always Boolean, and we use Opnd_Type, which is a candidate type for one
-- of the operands of N, to check visibility.
- procedure End_Interp_List;
- -- End the list of interpretations of current node
-
procedure Get_First_Interp
(N : Node_Id;
I : out Interp_Index;