When two methods 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, one implementation should invoke the other.

Noncompliant Code Example

class Box(length: Int, width: Int, height: Int) {
  def volume: Int = {
    val s = length * width
    s * height
  }

  def area: Int = {
    val s = length * width
    s * height
  }
}

Compliant Solution

class Box(length: Int, width: Int, height: Int) {
  def volume: Int = {
    val s = length * width
    s * height
  }

  def area: Int = {
    length * width
  }
}

Exceptions

Methods with fewer than 2 statements are ignored.