Performing lazy copy operations means we can end up copying a statement after it has been built and hence should no longer need its effective statements.
Add an explicit ModelProcessingPhase.EFFECTIVE_VIEW, which will run after EFFECTIVE_MODEL has been completed and the effective statement has been built.
It's execution is a straightforward children-first walk from root, just as any other processing phase.
All copy operations need to hook a prerequisite for EFFECTIVE_VIEW on their source context – which prevents it from completing – for each copied statement. That hook needs to resolve when the copy acquires the substatements.
- relates to
-
YANGTOOLS-1308 Reactor failure with OpenROADM models
- Resolved
-
YANGTOOLS-1192 ModifierImpl leaks post buildEffective()
- Resolved
-
YANGTOOLS-1190 Refactor AbstractAugmentStatementSupport
- Confirmed
- split from
-
YANGTOOLS-1161 Reformulate StatementContextFactory.createEffective()
- Resolved
- split to
-
YANGTOOLS-1197 Release GroupingNamespace when module/submodule is done
- Resolved
-
YANGTOOLS-1194 Reduce StatementSourceReference proliferation
- Resolved
-
YANGTOOLS-1198 Release TypeNamespace when module/submodule is done
- Resolved