1
[A package_renaming_declaration is used to rename a package.]
2
package_renaming_declaration::= package defining_program_unit_name renames package_name;
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.
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".
5
Example of renaming a package:
6
package TM renames Table_Manager;
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.