Commit 43151cfd by Ed Schonberg Committed by Arnaud Charlet

sem_ch4.adb (Try_Container_Indexing): When constructing the parameter list for…

sem_ch4.adb (Try_Container_Indexing): When constructing the parameter list for the potentially overloaded calls to...

2015-11-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Try_Container_Indexing): When constructing the
	parameter list for the potentially overloaded calls to indexing
	functions, do not propagate overloadings if the actual is a named
	association: overloadings appear directly on the expression in
	the association.

2015-11-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_type.adb (Interface_Present_In_Ancestor): If the type is
	incomplete, the list of ancestors is found either on the full
	view or the non-limited view of the type.

From-SVN: r230547
parent e645cb39
2015-11-18 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Try_Container_Indexing): When constructing the
parameter list for the potentially overloaded calls to indexing
functions, do not propagate overloadings if the actual is a named
association: overloadings appear directly on the expression in
the association.
2015-11-18 Ed Schonberg <schonberg@adacore.com>
* sem_type.adb (Interface_Present_In_Ancestor): If the type is
incomplete, the list of ancestors is found either on the full
view or the non-limited view of the type.
2015-11-18 Nicolas Roche <roche@adacore.com> 2015-11-18 Nicolas Roche <roche@adacore.com>
* sysdep.c (__gnat_localtime_tzoff): On Windows platform * sysdep.c (__gnat_localtime_tzoff): On Windows platform
......
...@@ -7437,7 +7437,14 @@ package body Sem_Ch4 is ...@@ -7437,7 +7437,14 @@ package body Sem_Ch4 is
Arg := First (Exprs); Arg := First (Exprs);
while Present (Arg) loop while Present (Arg) loop
New_Arg := Relocate_Node (Arg); New_Arg := Relocate_Node (Arg);
Save_Interps (Arg, New_Arg);
-- The arguments can be parameter associations, in which case the
-- explicit actual parameter carries the overloadings.
if Nkind (New_Arg) /= N_Parameter_Association then
Save_Interps (Arg, New_Arg);
end if;
Append (New_Arg, Assoc); Append (New_Arg, Assoc);
Next (Arg); Next (Arg);
end loop; end loop;
......
...@@ -2619,8 +2619,16 @@ package body Sem_Type is ...@@ -2619,8 +2619,16 @@ package body Sem_Type is
end if; end if;
if Ekind (Target_Typ) = E_Incomplete_Type then if Ekind (Target_Typ) = E_Incomplete_Type then
pragma Assert (Present (Non_Limited_View (Target_Typ)));
Target_Typ := Non_Limited_View (Target_Typ); -- We must have either a full view or a non-limited view of the type
-- to locate the list of ancestors.
if Present (Full_View (Target_Typ)) then
Target_Typ := Full_View (Target_Typ);
else
pragma Assert (Present (Non_Limited_View (Target_Typ)));
Target_Typ := Non_Limited_View (Target_Typ);
end if;
-- Protect the frontend against previously detected errors -- Protect the frontend against previously detected errors
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment