// "Replace with 'addA(d(createDummy, dummyParam1, initDummy), dummyParam)'" "true" // WITH_RUNTIME // COMPILER_ARGUMENTS: -XXLanguage:-NewInference typealias NewDummyRef = (Any) -> V inline fun Any.d( createDummy: NewDummyRef, dummyParam1: Int = 0, dummyParam2: Int = 0, initDummy: A.() -> Unit = {} ) = createDummy(this).also(initDummy).also { dummyParam1 + dummyParam2 } @Deprecated("Use d instead", ReplaceWith("addA(d(createDummy, dummyParam1, initDummy), dummyParam)")) inline fun MutableList.addA( createDummy: NewDummyRef, dummyParam1: Int = 0, dummyParam: Unit, initDummy: A.() -> Unit = {} ) = createDummy(this).also(initDummy).also { dummyParam1 }.also { add(it) } @Deprecated("Use d instead", ReplaceWith("addA(d(createDummy, dummyParam1, dummyParam2, initDummy), dummyParam)")) inline fun MutableList.addA( createDummy: NewDummyRef, dummyParam1: Int = 0, dummyParam2: Int = 0, dummyParam: Unit, initDummy: A.() -> Unit = {} ) = createDummy(this).also(initDummy).also { dummyParam1 + dummyParam2 }.also { add(it) } @Suppress("NOTHING_TO_INLINE") inline fun MutableList.addA(a: A, dummyParam: Unit): A = a.also { add(a) } fun createHi(any: Any) = "Hi $any" val unDeprecateMe = mutableListOf("Hello").apply { addA(::createHi, 1, Unit) { // Run the quick fix from the IDE and watch it produce broken code. println("Yo") } }