Let's say you have a library StuffDoer which calls an external library MagicWizard to do its stuff. Then you add a reference to StuffDoer in UsefulApp.
In some scenarios, referencing StuffDoer requires UsefulApp to reference MagicWizard directly (it "leaks"), while in some scenarios, it does not. I think in .NET it depends on whether or not the public API of StuffDoer makes reference to MagicWizard's types, or if they are only referenced in private code?
So my question is, what do you call the reference in these scenarios?
I've been thinking some good names for the type of reference that "leaks" might be "transitive reference" or "external reference". And some good names for the type of reference that doesn't "leak" might be "nontransitive reference" or "internal reference".
Are there established terms to describe these types of references? I'd like to be on the same page as everyone else, of course! 🙂