Reports redundant property setters.

Setter is considered to be redundant in one of the following cases:

  1. Setter has no body. Accessor visibility isn't changed, declaration isn't 'external' and has no annotations.
    
        var myPropA: Int = 0
            private set // it's ok - property visibility is changed to private
    
        var myPropB: Int = 0
            external set // it's ok - implemented not in Kotlin (external)
    
        var myPropC: Int = 0
            @Inject set // it's ok - accessor is annotated
    
    
        var myPropWithRedundantSetter: Int = 0
            set // redundant
            
  2. Setter body is a block with a single statement assigning parameter to the backing field.
    
        var prop: Int = 0
            set(value) { // redundant
                field = value
            }