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

Noncompliant Code Example

func fun1() (x, y int) {
  a, b := 1, 2
  b, a = a, b
  return a, b
}

func fun2() (x, y int) {  // Noncompliant; fun1 and fun2 have identical implementations
  a, b := 1, 2
  b, a = a, b
  return a, b
}

Compliant Solution

func fun1() (x, y int) {
  a, b := 1, 2
  b, a = a, b
  return a, b
}

func fun2() (x, y int) {  // Compliant
  return fun1()
}

Exceptions

Functions with fewer than 2 statements are ignored.