pragma Implemented_By_Entry (LOCAL_NAME);
This is a representation pragma which applies to protected, synchronized and task interface primitives. If the pragma is applied to primitive operation Op of interface Iface, it is illegal to override Op in a type that implements Iface, with anything other than an entry.
type Iface is protected interface; procedure Do_Something (Object : in out Iface) is abstract; pragma Implemented_By_Entry (Do_Something); protected type P is new Iface with procedure Do_Something; -- Illegal end P; task type T is new Iface with entry Do_Something; -- Legal end T;
NOTE: The pragma is still in its design stage by the Ada Rapporteur Group. It is intended to be used in conjunction with dispatching requeue statements as described in AI05-0030. Should the ARG decide on an official name and syntax, this pragma will become language-defined rather than GNAT-specific.