[4.x] Antlers: stops double-initial execution of tags within conditions #9504
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.
This PR resolves a bug when using tags inside conditions. Currently, it will evaluate a tag twice on initial usage. This existing bug can be observed by using a template similar to the following:
Currently, all evaluations would print
no
since the tag with execute once when building up the context before evaluating the condition, and would execute again when evaluating the condition itself. This PR improves this internal behavior to prevent double execution for the initial tag execution.Existing (valid) behaviors have not been changed, and additional test coverage added to ensure they are working correctly.
Interpolations are still processed when evaluating conditions:
If tags are used multiple times in the condition, they are still executed each time they are used. Test coverage added to ensure we are not using the cached value of the initial evaluation: