M
Mike Treseler
Guest
David Jones (dej@coup.inode.org) wrote
B.148 locally static name:
A name in which every expression is locally static
(if every discrete range that appears as part of the
name denotes a locally static range or subtype
and if no prefix within the name is either an object or
value of an access type or a function call).
BAR(3) is a locally static name because "3" is a static subrange.
It's legal as long as the rest of BAR'range is covered,
and there isn't an constant or function in scope named
"ba" for example.
-- Mike Treseler
Annex B saysLRM 4.3.2.2, p. 63, line 508:
"Each association element that associates a slice or subelement (or slice
thereof) of an interface object must identify the formal with a locally
static name."
With these definitions, how is the following legal:
U1: FOO port map(BAR(3) => BAZ);
BAR is an object, therefore not a locally static name.
B.148 locally static name:
A name in which every expression is locally static
(if every discrete range that appears as part of the
name denotes a locally static range or subtype
and if no prefix within the name is either an object or
value of an access type or a function call).
BAR(3) is a locally static name because "3" is a static subrange.
It's legal as long as the rest of BAR'range is covered,
and there isn't an constant or function in scope named
"ba" for example.
-- Mike Treseler