of OB (or one of its super-types) is annotated with scope SB then must-not-hold(SA, SB) must be false. Intuitively, the given objects have different scopes that should not be nested, for example, different intended lifetimes, and a forbidden path from OA to OB results in OB &quot;leaking&quot; out of the scope SA.</p><p>The implementation reads a configuration to determine a list of (scope) &quot;generators&quot; for each type of scope and a scope class for each type of scope. A generator for a scope type S