Two methods having the same implementation are suspicious. It might be that something else was intended. Or the duplication is intentional, which
becomes a maintenance burden.
class Circle(var radius: Int) {
def width_=(size: Int) {
radius = size / 2
updateShape()
}
def height_=(size: Int) { // Noncompliant: duplicates width_
radius = size / 2
updateShape()
}
def updateShape() = {...}
}
If the identical logic is intentional, the code should be refactored to avoid duplication. For example, by having both methods call the same method
or by having one implementation invoke the other.
class Circle(var radius: Int) {
def width_=(size: Int) {
diameter = size
}
def height_=(size: Int) {
diameter = size
}
def diameter_=(size: Int) { // Implementation is shared
radius = size / 2
updateShape()
}
def updateShape() = {...}
}
Exceptions
Methods with fewer than 2 statements are ignored.