Я пишу две функции расширения для одного и того же класса:
class Something<T:Any> { ... }
Они похожи:
fun Something<Int>.toJson(): String = ...
fun Something<Double>.toJson(): String = ...
И приводит к ошибке компилятора:
Котлин: конфликт декларации платформы: следующие декларации имеют одинаковую подпись JVM
Как я могу создать две функции расширения, различающиеся только сигнатуры дженериков? или это невозможно?
Примечание. этот вопрос специально написан и на него ответил автор (Самостоятельные вопросы), так что ответы на часто задаваемые темы Kotlin присутствуют в SO. Он возник в Kotlin Slack #general channel.