Details

    • Type: Language-Specification
    • Status: Active
    • Resolution: Unresolved
    • Labels:
      None
    • Message:
      This branch duplicates the one on line n.
    • Impact:
      Unknown 'null' severity
    • Likelihood:
      Unknown 'null' severity
    • Default Quality Profiles:
      Sonar way, Sonar way recommended
    • ESLint:
      no-duplicate-case

      Description

      A chain of if/else if statements is evaluated from top to bottom. At most, only one branch will be executed: the first one with a condition that evaluates to true.

      Therefore, duplicating a condition automatically leads to dead code. Usually, this is due to a copy/paste error. At best, it's simply dead code and at worst, it's a bug that is likely to induce further bugs as the code is maintained, and obviously it could lead to unexpected behavior.

       

      Note that this rule requires Node.js to be available during analysis.

      Noncompliant Code Example

      if (param == 1)
        openWindow();
      else if (param == 2)
        closeWindow();
      else if (param == 1)  // Noncompliant
        moveWindowToTheBackground();
      

      Compliant Solution

      if (param == 1)
        openWindow();
      else if (param == 2)
        closeWindow();
      else if (param == 3)
        moveWindowToTheBackground();
      

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              freddy.mallet Freddy Mallet (Inactive)
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: