Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
So far I have not been able to isolate the issue that Dune has on Game.hx completion, but only reproduced via a non-server example (see below). I'd need to check in more details what
buildDocument
does in order to make a simple repro of the compilation server issue.The problem I'm seeing on the original issue is:
Initial compilation:
ui.menu.$
, onlyui.menu.$UI
ui.menu.Screen
enters itsbuildObject
, and add itself (temporarily) toRESOLVED_COMPONENTS
Screen
'sbuildDocument
triggers (indirectly) build ofui.LoadingScreen.MenuLoadingScreen
, which hasui.menu.Screen
as parent class.RESOLVED_COMPONENTS
Screen
resumes building, removes its temp entry fromRESOLVED_COMPONENTS
Recompilation with
Screen
still in cache andui.LoadingScreen.MenuLoadingScreen
being rebuilt:ui.LoadingScreen.MenuLoadingScreen
enters itsbuildObject
, looks for its parent classScreen
's temp entry is no longer inRESOLVED_COMPONENTS
and also cannot be resolvedMissing super component registration screen
errorUsing
COMPONENTS
directly, by making sure we're not using discarded components, we can skip theRESOLVED_COMPONENTS
business entirely.Would still be interesting to double check on different domkit codebases.
Example without server
Main.hx
components1/Comp1.hx
components2/Comp2.hx
Before:
Missing super component registration comp1
After: Ok