Description
In the following model:
module foo {
namespace foo;
prefix foo;
grouping grp {
container foo;
}
container bar {
uses grp;
}
container baz {
uses grp;
}
}
We end up with distinct objects for bar/foo and baz/foo. Disregarding SchemaPath, this is because the effectiveConfig property changes separately and the instantiation of baz/foo does not see the object at bar/foo (and vice-versa).
In order to make this work we need to instantiate a statement-specific lookup table in grp/foo's ReactorStmtCtx. When instantiating bar/foo, this would be populated with an effective key, i.e. effectiveConfig + history (+ whatever) and pointing to bar/foo. When instantiating baz/foo, the bar/foo instance would be recognized as the equivalent and reused.