8.5 Renaming Declarations
1
A renaming_declaration
declares another name for an entity, such as an object, exception, package,
subprogram, entry, or generic unit. Alternatively, a subprogram_renaming_declaration
can be the completion of a previous subprogram_declaration.
Syntax
2
renaming_declaration ::=
object_renaming_declaration
|
exception_renaming_declaration
|
package_renaming_declaration
|
subprogram_renaming_declaration
|
generic_renaming_declaration
Dynamic Semantics
3
The elaboration of a
renaming_declaration
evaluates the
name that follows the reserved
word
renames and thereby determines the view and entity denoted
by this name
(the
renamed
view and
renamed entity). A
name
that denotes the
renaming_declaration denotes
(a new view of) the renamed entity.
4
9 Renaming may be used to resolve name
conflicts and to act as a shorthand. Renaming with a different identifier
or operator_symbol does not hide the old name;
the new name and the old name
need not be visible at the same places.
5
10 A task or protected object that is declared
by an explicit object_declaration can be renamed
as an object. However, a single task or protected object cannot be renamed
since the corresponding type is anonymous (meaning it has no nameable
subtypes). For similar reasons, an object of an anonymous array or access
type cannot be renamed.
6
11 A subtype
defined without any additional constraint can be used to achieve the
effect of renaming another subtype (including a task or protected subtype)
as in
7
subtype Mode is Ada.Text_IO.File_Mode;