Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUGFIX] Choose global/local variable based on primary identifier #850

Merged
merged 2 commits into from
Dec 11, 2023

Conversation

s2b
Copy link
Contributor

@s2b s2b commented Dec 9, 2023

With the previous implementation of ScopedVariableProvider, variables that contained arrays or object structures could behave incorrectly in a scoped context. When accessing a object path in a fluid template (e. g. myVar.subKey), the value of that "sub variable" was considered for the decision which variable (global or local) should be used.

This behavior is incorrect, only the "primary" variable name should determine if a local variable is set or not (and should fall back to a global variable). This would mean that a non-existing sub value in a local variable would trigger a fallback to the global variable.

This change restores the correct behavior: Only the "primary" variable name is checked initially. If the variable exists in the local variables, those will be used, even if the requested sub value doesn't exist there. Only if the "primary" variable name doesn't exist in local variables, global variables will be used instead.

Resolves #848

…fier

With the previous implementation of ScopedVariableProvider,
variables that contained arrays or object structures could behave
incorrectly in a scoped context. When accessing a object path
in a fluid template (e. g. myVar.subKey), the value of that
"sub variable" was considered for the decision which variable
(global or local) should be used.

This behavior is incorrect, only the "primary" variable name
should determine if a local variable is set or not (and should
fall back to a global variable). This would mean that a non-existing
sub value in a local variable would trigger a fallback to the
global variable.

This change restores the correct behavior: Only the "primary"
variable name is checked initially. If the variable exists in the
local variables, those will be used, even if the requested sub value
doesn't exist there. Only if the "primary" variable name doesn't
exist in local variables, global variables will be used instead.

Resolves #848
@s2b s2b changed the title [BUGFIX] Choose between global/local variable based on primary identi… [BUGFIX] Choose global/local variable based on primary identifier Dec 9, 2023
Copy link

@m41r m41r left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

works as intended

@s2b s2b merged commit 567a166 into main Dec 11, 2023
6 checks passed
@s2b s2b deleted the bugfix/localVariableOverride branch December 11, 2023 13:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Bug/Breaking Change with scoped variables, for-loop and sections
3 participants