Files
kotlin-fork/idea/testData/quickfix/deprecatedSymbolUsage/optionalParameters/optionalParameterAndLambdaComplex.kt
T
2019-05-06 13:59:24 +03:00

40 lines
1.4 KiB
Kotlin
Vendored

// "Replace with 'addA(d(createDummy, dummyParam1, initDummy), dummyParam)'" "true"
// WITH_RUNTIME
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
typealias NewDummyRef<V> = (Any) -> V
inline fun <A : Any> Any.d(
createDummy: NewDummyRef<A>,
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 <A : Any> MutableList<A>.addA(
createDummy: NewDummyRef<A>,
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 <A : Any> MutableList<A>.addA(
createDummy: NewDummyRef<A>,
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 <A : Any> MutableList<A>.addA(a: A, dummyParam: Unit): A = a.also { add(a) }
fun createHi(any: Any) = "Hi $any"
val unDeprecateMe = mutableListOf("Hello").apply {
addA<caret>(::createHi, 1, Unit) { // Run the quick fix from the IDE and watch it produce broken code.
println("Yo")
}
}