In Kotlin, you must override either both or neither of the equals(Any?) and hashCode() methods in order to keep the
contract between the two:
  -  Whenever the 
hashCode method is invoked on the same object more than once, it must consistently return the same integer, provided
  no information used in equals comparisons on the object is modified.  
  -  If two objects are equal according to the 
equals method, then calling the hashCode method on each of the two objects
  must produce the same integer result.  
By overriding only one of the two methods with a non-trivial implementation, this contract is almost certainly broken.
Noncompliant code example
class MyClass {    // Noncompliant - should also override "hashCode()"
  override fun equals(other: Any?): Boolean {
    /* ... */
  }
}
Compliant solution
class MyClass {    // Compliant
  override fun equals(other: Any?): Boolean {
    /* ... */
  }
  override fun hashCode(): Int {
    /* ... */
  }
}