pub fn mentioned_by_copies(module: &Module) -> Vec<Name>Expand description
The values of module that a copy of its code, placed in another module, names: the
declarations its constrained declarations and the bindings of its instances mention.
A copy is made from what was written in module, and it can name a value module does
not expose — exposing is a rule about what another module’s source may write, and
canonicalization enforces it whatever this returns. So a backend that makes each copy
reachable exports these as well as what the header lists. A constrained declaration
has no function under its own name, so it is never in the answer; the instance bindings
of a module are every one of its instances’, whether or not the instance has a context,
since a binding that is not copied is not harmed by being named. A derivation’s bindings
are placed in the instances that derive them, so they are among those.
Sorted by name.