8. Visibility Rules

8.1. Declarative Region

No extensions or restrictions.

8.2. Scope of Declarations

No extensions or restrictions.

8.3. Visibility

No extensions or restrictions.

8.3.1. Overriding Indicators

No extensions or restrictions.

8.4. Use Clauses

Legality Rules

  1. Use clauses are always in SPARK, even if the unit mentioned is not completely in SPARK.

8.5. Renaming Declarations

8.5.1. Object Renaming Declarations

Legality Rules

  1. [An expression or range occurring as part of an object_renaming_declaration shall not have a variable input; similarly, the access-valued prefix of a dereference occurring as part of an object_renaming declaration shall not have a variable input. See Expressions for the statement of this rule.] [The first part of this rule can apply to an index of an indexed_component and the range of a slice.]

8.5.2. Exception Renaming Declarations

No extensions or restrictions.

8.5.3. Package Renaming Declarations

No extensions or restrictions.

8.5.4. Subprogram Renaming Declarations

From the point of view of both static and dynamic verification, a renaming-as-body is treated as a one-line subprogram that “calls through” to the renamed unit.

Legality Rules

  1. The aspect_specification on a subprogram_renaming_declaration shall not include any of the SPARK-defined aspects introduced in this document.

8.5.5. Generic Renaming Declarations

No extensions or restrictions.

8.6. The Context of Overload Resolution

No extensions or restrictions.