Emil Jerabek wrote:
On Wed, Jan 29, 2003 at 02:12:20AM +0100, Frank Heckenbach wrote:
Does EP allow a module to export a predefined identifier? The standard makes it clear that it can re-export an identifier imported from another module (e.g., 6.11.6, example 2), but what about predefined things?
As in my other mail, I can't seem to find a wording that prohibits it (but I might overlook something).
This may be relevant:
6.11.2 Export-part
[...]
The occurrence of an exportable-name in an export-clause shall constitute the defining-point of the identifier of the constant-identifier, type-identifier, schema-identifier, variable-identifier, procedure-identifier, or function-identifier contained by the exportable-name as a constituent-identifier for the region that is the interface denoted by the identifier of the export-part that contains the export-clause. The occurrence of an identifier in an export-renaming-clause of an export-clause shall constitute the defining-point of that identifier as a constituent-identifier for the region that is the interface denoted by the identifier of the export-part that contains the export-clause.
[...]
6.2.2.10
Required identifiers that denote the required values, types, schemata, procedures, and functions shall be used as if their defining-points have a region enclosing the program (see 6.1.3, 6.4.2.2, 6.4.3.4, 6.4.3.6, 6.4.3.3.3, 6.7.5, 6.7.6, and 6.10).
IMHO this means that predefined identifiers cannot be exported, because they would have two different "defining-points" for different regions.
But isn't this also true when re-exporting an imported identifier?
: 6.11.3 : : [...] : : For each constituentÂidentifier having a definingÂpoint for the region that : is the interface denoted by the interfaceÂidentifier of an : importÂspecification : : a) the occurrence of that interfaceÂidentifier shall constitute the : definingÂpoint of that constituent identifier for each region that is a : constituentÂidentifier contained by the importÂspecification.
Frank