+2010-10-07 Robert Dewar <dewar@adacore.com>
+
+ * sem_ch12.adb: Add comment.
+ * sem_ch6.adb: Minor reformatting.
+
2010-10-07 Robert Dewar <dewar@adacore.com>
* par-ch3.adb, par-ch6.adb, par-ch7.adb, par-ch9.adb, par-ch10.adb: Add
Result_Type := Access_Definition (Spec, Result_Definition (Spec));
Set_Etype (Id, Result_Type);
- -- Check restriction imposed by AI05-073 : a generic function
+ -- Check restriction imposed by AI05-073: a generic function
-- cannot return an abstract type or an access to such.
+ -- This is a binding interpreration should it apply to earlier
+ -- versions of Ada as well as Ada 2012???
+
if Is_Abstract_Type (Designated_Type (Result_Type))
and then Ada_Version >= Ada_12
then
-- Ada 2005 (AI-251): If the return type is abstract, verify that
-- the subprogram is abstract also. This does not apply to renaming
-- declarations, where abstractness is inherited.
+
-- In case of primitives associated with abstract interface types
-- the check is applied later (see Analyze_Subprogram_Declaration).
- if not Nkind_In (Parent (N),
- N_Subprogram_Renaming_Declaration,
- N_Abstract_Subprogram_Declaration,
- N_Formal_Abstract_Subprogram_Declaration)
+ if not Nkind_In (Parent (N), N_Subprogram_Renaming_Declaration,
+ N_Abstract_Subprogram_Declaration,
+ N_Formal_Abstract_Subprogram_Declaration)
then
if Is_Abstract_Type (Etype (Designator))
and then not Is_Interface (Etype (Designator))
Error_Msg_N
("function that returns abstract type must be abstract", N);
- -- Ada 2012 (AI-0073) : extend this test to subprograms with an
+ -- Ada 2012 (AI-0073): extend this test to subprograms with an
-- access result whose designated type is abstract.
elsif Nkind (Result_Definition (N)) = N_Access_Definition