- (1)
- An object_renaming_declaration is used to rename an object.
(2)
object_renaming_declaration ::= defining_identifier : subtype_mark renames object_name;
Name Resolution Rules
- (3)
- The type of the object_name shall resolve to the type determined by the
subtype_mark.
Legality Rules
- (4)
- The renamed entity shall be an object.
- (5)
- The renamed entity shall not be a subcomponent that depends on
discriminants of a variable whose nominal subtype is unconstrained, unless
this subtype is indefinite, or the variable is aliased. A slice of an array
shall not be renamed if this restriction disallows renaming of the array.
Static Semantics
- (6)
- An object_renaming_declaration declares a new view of the renamed object
whose properties are identical to those of the renamed view. Thus, the
properties of the renamed object are not affected by the renaming_declaration. In particular, its value and whether or not it is a constant
are unaffected; similarly, the constraints that apply to an object are not
affected by renaming (any constraint implied by the subtype_mark of the
object_renaming_declaration is ignored).
Examples
- (7)
- Example of renaming an object:
(8)
declare
L : Person renames Leftmost_Person; -- see 3.10.1
begin
L.Age := L.Age + 1;
end;
-- Email comments, additions, corrections, gripes, kudos, etc. to:
Magnus Kempe -- Magnus.Kempe@di.epfl.ch
Copyright statement
Page last generated: 95-03-12