Abandon_Instantiation (Actual);
end if;
- -- In Ada 2012, actuals for access_to_subprograms must be subtype
- -- conformant with the generic formal. Previous to AI05-288 only mode
- -- conformance was required.
+ -- In accordance with AI05-288 (which is an Ada 2012 AI that is a
+ -- binding intepretation to be applied to previous versions of Ada
+ -- as well as Ada 2012), actuals for access_to_subprograms must be
+ -- subtype conformant with the generic formal. Previous to AI05-288
+ -- only mode conformance was required.
Check_Subtype_Conformant
(Designated_Type (Act_T),
type Conformance_Type is
(Type_Conformant, Mode_Conformant, Subtype_Conformant, Fully_Conformant);
-- pragma Ordered (Conformance_Type);
+ -- Why is above line commented out ???
-- Conformance type used in conformance checks between specs and bodies,
-- and for overriding. The literals match the RM definitions of the
-- corresponding terms. This is an ordered type, since each conformance
-- on the appropriate component of the New_Id construct if not.
-- Skip_Controlling_Formals is True when checking the conformance of
-- a subprogram that implements an interface operation. In that case,
- -- only the non-controlling formals can (and must) be examined.
+ -- only the non-controlling formals can (and must) be examined. The
+ -- argument Get_Inst is set to True when this is a check against a
+ -- formal access-to-subprogram type, indicating that mapping of types
+ -- is needed.
procedure Check_Type_Conformant
(New_Id : Entity_Id;
Get_Inst : Boolean := False) return Boolean;
-- Check that the types of two formal parameters are conforming. In most
-- cases this is just a name comparison, but within an instance it involves
- -- generic actual types, and in the presence of anonymous access types it
- -- must examine the designated types.
+ -- generic actual types, and in the presence of anonymous access types
+ -- it must examine the designated types. The argument Get_Inst is set to
+ -- True when this is a check against a formal access-to-subprogram type,
+ -- indicating that mapping of types is needed.
procedure Create_Extra_Formals (E : Entity_Id);
-- For each parameter of a subprogram or entry that requires an additional