When two functions have the same implementation, either it was a mistake - something else was intended - or the duplication was intentional, but may be confusing to maintainers. In the latter case, the code should be refactored. Numerical and string literals are not taken into account.

Noncompliant Code Example

class MyClass {
  fun calculateCode(): String {
    doTheThing()
    doOtherThing()
    return "done"
  }

  fun getStatus(): String {  // Noncompliant
    doTheThing()
    doOtherThing()
    return "done"
  }
}

Compliant Solution

class MyClass {
  fun calculateCode(): String {
    doTheThing()
    doOtherThing()
    return "done"
  }

  fun getStatus(): String = calculateCode()
}

Exceptions

Methods with fewer than 2 statements are ignored.