Contents Index Search Related Documents Previous Next
10.1.6 Environment-Level Visibility Rules
1
The normal visibility rules do not apply within
a parent_unit_name or a context_clause,
nor within a pragma that appears
at the place of a compilation unit. The special visibility rules for
those contexts are given here.
Static Semantics
2/2
Within
the
parent_unit_name at the beginning
of an explicit
library_item, and
within a
nonlimited_with_clause,
the only declarations that are visible are those that are explicit
library_items
of the environment, and the only declarations that are directly visible
are those that are explicit root
library_items
of the environment. Within a
limited_with_clause,
the only declarations that are visible are those that are the implicit
declaration of the limited view of a library package of the environment,
and the only declarations that are directly visible are those that are
the implicit declaration of the limited view of a root library package.
3
Within
a
use_clause or
pragma
that is within a
context_clause,
each
library_item mentioned in a
previous
with_clause of the same
context_clause is visible, and each
root
library_item so mentioned is
directly visible. In addition, within such a
use_clause,
if a given declaration is visible or directly visible, each declaration
that occurs immediately within the given declaration's visible part is
also visible. No other declarations are visible or directly visible.
4
Within
the
parent_unit_name of a subunit,
library_items are visible as they
are in the
parent_unit_name of a
library_item; in addition, the declaration
corresponding to each
body_stub
in the environment is also visible.
5
Within
a
pragma that appears at the place
of a compilation unit, the immediately preceding
library_item
and each of its ancestors is visible. The ancestor root
library_item
is directly visible.
6/2
Notwithstanding the rules
of
4.1.3, an expanded name in a
with_clause,
a
pragma in a
context_clause,
or a
pragma that appears at the
place of a compilation unit} may consist of a
prefix
that denotes a generic package and a
selector_name
that denotes a child of that generic package. (The child is necessarily
a generic unit; see
10.1.1.)
Contents Index Search Related Documents Previous Next Legal