rules:
    - id: use-prefix-increment-not-postfix
      message: >-
        Consider using the prefix increment expression whenever the return value is not needed.
        The prefix increment expression is cheaper in terms of gas.
      metadata:
        references:
          - https://github.com/byterocket/c4-common-issues/blob/main/0-Gas-Optimizations.md/#g012---use-prefix-increment-instead-of-postfix-increment-if-possible
        category: performance
        technology:
         - solidity
      patterns:
        - pattern: $VAR++
        - pattern-not-inside: |
            $B = ...
        - pattern-not-inside: |
            if (<... $VAR++ ...>) {
              ... 
            }
        - pattern-not-inside: require (<... $VAR++ ...>)
        - pattern-not-inside: |
            while (<... $VAR++ ...>) {
              ...
            }
        - pattern-not-inside: |
            return ...;
      languages:
        - solidity
      severity: INFO
  