Inconsistent expression evaluation for nested expressions
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 68/100
Research direction
Start in src/main/java/com/hubspot/jinjava/el/ext/ExtendedParser.java around lines 305-316 and reproduce the four expressions from the issue. Compare parsing of the list literal inside the nested expression with parsing through the categories variable. Done means negation produces the same expected result in both forms.
Written by the indexing model from the issue text.
Description
Consider following case:
{{ "c" in ["a", "b"] }} // outputs false
{{ !("c" in ["a", "b"]) }} // also outputs false
{% set categories = ["a", "b"] %}
{{ "c" in categories }} // outputs false
{{ !("c" in categories) }} // correctly outputs true
I'd expect expression evaluation to behave the same both for versions - with or without variables used, but it does not.
I've tracked this down to what i believe is a bug in parser https://github.com/HubSpot/jinjava/blob/43bbea7e772a961316f575f26297f198eb3c655a/src/main/java/com/hubspot/jinjava/el/ext/ExtendedParser.java#L305-L316
If there is a coma between ( and ) token parser will interpret it as a tuple declaration and otherwise as nested expression. However this seems incorrect in the above case as I am not trying to declare a tuple, just using a list literal in nested comparison
- Dominant language
- Java
- Stars
- 785
- Forks
- 184
- Avg merge
- 6d 22h
- Merged PRs (30d)
- 1
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from HubSpot/jinjava
-
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
-
Jinjava 3.0 Open
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
-
Difficulty 3/5 1-2 days Newbie friendliness 45/100
-
Is java21 available? Open
Difficulty 4/5 3-5 days Newbie friendliness 25/100
Similar issues
-
awaiting triage bug Causes friction Hop Gui P1 P2 Transforms
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
apache/flink-agents#1152 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
jenkinsci/blueocean-plugin#5417 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
objectionary/eo-graphs#75 ·