fix: duplicated operator handling

[Generated by Duo]

Relates to issue #75 (closed)

Changes

  • Extended duplicate operator validation from only in operators to all operator types (=, >, >=, <, <=, in)
  • Updated analyze_expressions() to track all operators with a HashMap<Operator, IndexSet<Field>> instead of just tracking in operators
  • Added field type checking to implement special handling for list-like fields (only in operator duplicates are checked for list fields)
  • Modified error handling to display dynamic operator descriptions instead of hardcoded "in" message
  • Updated DuplicateOperatorForField error variant to include both field and operator parameters
  • Added 10 comprehensive test cases covering all operator types and edge cases
  • Ensured backward compatibility while matching TypeScript implementation behavior from MR !261 (merged)
Edited by Daniele Rossetti

Merge request reports

Loading