The library includes an extension T.exhaustive method, likely used internally to make sure when {} calls are exhaustive. The problem is that this method is defined on T and the method is public instead of internal it shows up in the auto complete for every object in every project that depends on this library. It is such a simple method even if the library had to include multiple copies of it in each module and could therefore mark it as internal it would be worth it to avoid exposing it. There are also many other approaches to ensuring when functions are exhaustive (https://github.com/cashapp/exhaustive documents most of them) that wouldn't add a method to the auto complete for every object.
package io.getstream.chat.android.core.internal
@InternalStreamChatApi
public inline val <T> T.exhaustive: T
get() = this
The library includes an extension T.exhaustive method, likely used internally to make sure when {} calls are exhaustive. The problem is that this method is defined on T and the method is public instead of internal it shows up in the auto complete for every object in every project that depends on this library. It is such a simple method even if the library had to include multiple copies of it in each module and could therefore mark it as internal it would be worth it to avoid exposing it. There are also many other approaches to ensuring when functions are exhaustive (https://github.com/cashapp/exhaustive documents most of them) that wouldn't add a method to the auto complete for every object.