If there is a circular dependency in any Verse-file, UEFN crashes and the project cannot be opened again until the circular dependency is resolved. Neither the IDE syntax checker, the immediate crash-message nor the crash-messages upon subsequent attempts to reopen the project in UEFN, indicate that this might be the reason. This issue could potentially be behind other bug reports on UEFN crashing and/or not opening.
Steps to Reproduce
Add this to a Verse-file and attempt to build:
class_one := class:
SecondClass : class_two = class_two{}
class_two := class:
FirstClass : class_one = class_one{}
# Of course, in this trivial example the mistake is evident, but if the class definitions are spread across different files, and if several code-changes were made since last Verse-build, the user may not realize having made the mistake.
Expected Result
Ideally, the syntax-checker would alert the user that a circular dependency has been made, and/or the crash-logs could indicate that this is the reason.
Observed Result
UEFN crashes with the error messages indicated below*, attempting to reopen the project causes the crash again.
I had the same issue too. Crash during the verse code build then impossible to reopen the project. I even had to delete the problematic verse file to be able to reopen the project (i really dont recommend that but if someone as the same issue and you have corrected the verse file and it still doesnt open you may consider that as a last resort …). It was also a problem of circular dependency in 2 separate verse file. i didnt notice when i build the verse code. And same thing no other error message or warning than the one describe above, and you cant open the project again, it crashe everytime you try until the problem is fixed in the verse file outside the project. it was not a very pleasant time for me …
I wonder if this should be submitted as a Feature request. It can sometimes be very easy to do this on accident when building something up. When re-opening a project the user must first externally comment out code or remove verse files from project, unless they recognize the effect and can trace down the loop without an analyzer.
Many learning verse and classes will likely run into this and think their project is broken.
@JoggingJohn - Great job breaking this one down for clarity!
It would be great to see circular dependency call-outs to slap us on the wrist!