Next: , Previous: 8.5.2, Up: 8.5


8.5.3 Package Renaming Declarations

1
[A package_renaming_declaration is used to rename a package.]

Syntax

2

package_renaming_declaration::= package defining_program_unit_name renames package_name;
Legality Rules

3
The renamed entity shall be a package.

3.1/2
{50217AI95−00217−06} {00412AI95−00412−01} If the package_name of a package_renaming_declaration denotes a limited view of a package P, then a name that denotes the package_renaming_declaration shall occur only within the immediate scope of the renaming or the scope of a with_clause that mentions the package P or, if P is a nested package, the innermost library package enclosing P.

3.a.1/2

Discussion: The use of a renaming that designates a limited view is restricted to locations where we know whether the view is limited or nonlimited (based on a with_clause). We don't want to make an implicit limited view, as those are not transitive like a regular view. Implementations should be able to see all limited views needed based on the context_clause.
Static Semantics

4
A package_renaming_declaration declares a new view [of the renamed package].

4.1/2
{00412AI95−00412−01} [At places where the declaration of the limited view of the renamed package is visible, a name that denotes the package_renaming_declaration denotes a limited view of the package (see 10.1.1).]

4.a.1/2

Proof: This rule is found in 8.3, "8.3 Visibility".
Examples

5
Example of renaming a package:

6

     package TM renames Table_Manager;
Wording Changes from Ada 95

6.a/2

{50217AI95−00217−06} {00412AI95−00412−01} Uses of renamed limited views of packages can only be used within the scope of a with_clause for the renamed package.