Uploaded image for project: 'Rules Repository'
  1. Rules Repository
  2. RSPEC-1950

Cases in a "switch" should not have the same condition

    Details

    • Type: Bug Detection
    • Status: Deprecated
    • Resolution: Unresolved
    • Labels:
      None
    • Message:
      This case duplicates the case on line n with condition "x".
    • Default Severity:
      Minor
    • Impact:
      Low
    • Likelihood:
      Low
    • Covered Languages:
      Flex
    • Remediation Function:
      Constant/Issue
    • Constant Cost:
      15min

      Description

      Having multiple cases in a switch with the same condition is confusing at best. At worst, it's a bug that is likely to induce further bugs as the code is maintained.

      If the first case ends with a break, the second case will never be executed, rendering it dead code. Worse there is the risk in this situation that future maintenance will be done on the dead case, rather than on the one that's actually used.

      On the other hand, if the first case does not end with a break, both cases will be executed, but future maintainers may not notice that.

      Noncompliant Code Example

      switch(i) {
        case 1:
          //...
          break;
        case 5:
          //...
          break;
        case 3:
          //...
          break;
        case 1:  // Noncompliant
          //...
          break;
      }
      

      Compliant Solution

      switch(i) {
        case 1:
          //...
          break;
        case 5:
          //...
          break;
        case 3:
          //...
          break;
      }
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                ann.campbell.2 Ann Campbell
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated: