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.
Add a policy on code modification by the
#[widget]
macro onWidget
methods. This code modification was already used (call order verification) but was unobservable outside of reported error cases.Make use of this policy to call
draw.set_id
infn Layout::draw
, thus makingDrawCx::recurse
redundant.While allowing macros to modify methods may seem an evil, it is deemed the lesser evil compared to alternatives:
DrawCx::recurse
pattern avoided the need to calldraw.set_id(self.id())
, that pattern is incompatible with a planned future change.)probe
/try_probe
but not a great solution, especially when it needs to apply to more than one "method".