Details
-
Type:
Language-Specification
-
Status: Active
-
Resolution: Unresolved
-
Labels:None
-
Impact:Unknown 'null' severity
-
Likelihood:Unknown 'null' severity
Description
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 def initialize(length, width, height) @length, @width, @height = length, width, height end def getVolume area = @length * @width return area * @height end def getArea # Noncompliant, implementation is identical to "getVolume" area = @length * @width return area * @height end end
Compliant Solution
class Box def initialize(length, width, height) @length, @width, @height = length, width, height end def getVolume return getArea * @height end def getArea return @length * @width end end
Exceptions
Methods with fewer than 2 statements are ignored.