Allow for nested no_commands blocks. #697
Merged
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.
Allow for nested
no_commands
blocks. 🌈Background
In certain circumstances we may wish to nest
no_commands
blocks.However, since when exiting the
no_commands
block the@no_commands
instance var is reset to
false
, we get unexpected behaviour.For example, this will show warnings stating that the method
foo
is missing usage and a description:This particular example is trivially solved but things get more difficult when, say, including modules.
Solution
This change uses a
NestedContext
object to track the depth of theno_command
blocks and ensure that we only start creating commands again once we've left all of them.Comments
NestedContext