The previous logic to guard against infinite recursion of Project.ensure_fully_loaded() could lead to the subproject being fully loaded before the parent project, which breaks an assumption of the loader and can result in an unhandled exception.
The updated logic still guards against infinite recursion while making sure that the parent project is fully loaded before subprojects.
The previous logic to guard against infinite recursion of
Project.ensure_fully_loaded()
could lead to the subproject being fully loaded before the parent project, which breaks an assumption of the loader and can result in an unhandled exception.The updated logic still guards against infinite recursion while making sure that the parent project is fully loaded before subprojects.
A regression test is included.
Fixes #1891.