kavin
09/17/2024, 4:57 PMArjan van Wieringen
09/17/2024, 7:06 PMRob Elliot
09/17/2024, 7:50 PMArjan van Wieringen
09/17/2024, 7:56 PMCLOVIS
09/17/2024, 8:38 PMwe have named and defaulted parametersThose are great for end-users, but sadly not good enough for #C8C4JTXR7: adding one is a breaking compatibility change!
Goetz Markgraf
09/18/2024, 6:14 AMGoetz Markgraf
09/18/2024, 6:15 AMCLOVIS
09/18/2024, 7:36 AMNot, if you add a parameter with a defaultThat's a binary-breaking change still, it creates an overload that is completely distinct. It is a source-compatible change, so for end users it's ok, but for library authors it's not.
Rob Elliot
09/18/2024, 7:39 AM@JvmOverloads
gives some wiggle room? Though I know from experience it’s not a panacea if you have multiple parameters of the same type, so it’s still a hostage to fortune.CLOVIS
09/18/2024, 8:17 AMDeprecationLevel.HIDDEN
. And even then, you can only add a parameter at the very end of the list.CLOVIS
09/18/2024, 8:18 AMModifier
(Modifier.then(SomeObject).then(SomeOtherObject)
), CoroutineContext
(Job() + <http://Dispatchers.IO|Dispatchers.IO> + CoroutineName("foo")
), etc.