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.

        Attachments

          Activity

            People

            Assignee:
            Unassigned Unassigned
            Reporter:
            alban.auzeill Alban Auzeill
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Dates

              Created:
              Updated: