KT-7895 Auto replace for deprecated (ReplaceWith) loses generic type

#KT-7895 Fixed
This commit is contained in:
Valentin Kipyatkov
2015-06-03 21:31:15 +03:00
parent f14615315d
commit a26c62ab0f
22 changed files with 386 additions and 54 deletions
@@ -0,0 +1,15 @@
// "Replace with 'newFun()'" "true"
package ppp
fun bar(): Int = 0
@deprecated("", ReplaceWith("newFun()"))
fun oldFun(p: Int = ppp.bar()) {
newFun()
}
fun newFun(){}
fun foo() {
<caret>oldFun()
}
@@ -0,0 +1,16 @@
// "Replace with 'newFun()'" "true"
package ppp
fun bar(): Int = 0
@deprecated("", ReplaceWith("newFun()"))
fun oldFun(p: Int = ppp.bar()) {
newFun()
}
fun newFun(){}
fun foo() {
bar()
<caret>newFun()
}
@@ -0,0 +1,12 @@
// "Replace with 'newFun(*elements)'" "true"
@deprecated("", ReplaceWith("newFun(*elements)"))
fun <T> oldFun(vararg elements: T) {
newFun(*elements)
}
fun <T> newFun(vararg elements: T){}
fun foo() {
<caret>oldFun<String>()
}
@@ -0,0 +1,12 @@
// "Replace with 'newFun(*elements)'" "true"
@deprecated("", ReplaceWith("newFun(*elements)"))
fun <T> oldFun(vararg elements: T) {
newFun(*elements)
}
fun <T> newFun(vararg elements: T){}
fun foo() {
newFun<String>()
}
@@ -0,0 +1,12 @@
// "Replace with 'newFun<T>()'" "true"
@deprecated("", ReplaceWith("newFun<T>()"))
fun <T : Any> oldFun(): T? {
return newFun<T>()
}
fun <T : Any> newFun(): T? = null
fun foo(): String? {
return <caret>oldFun()
}
@@ -0,0 +1,12 @@
// "Replace with 'newFun<T>()'" "true"
@deprecated("", ReplaceWith("newFun<T>()"))
fun <T : Any> oldFun(): T? {
return newFun<T>()
}
fun <T : Any> newFun(): T? = null
fun foo(): String? {
return newFun()
}
@@ -0,0 +1,12 @@
// "Replace with 'newFun<T>()'" "true"
@deprecated("", ReplaceWith("newFun<T>()"))
fun <T> oldFun() {
newFun<T>()
}
fun <T> newFun(){}
fun foo() {
<caret>oldFun<String>()
}
@@ -0,0 +1,12 @@
// "Replace with 'newFun<T>()'" "true"
@deprecated("", ReplaceWith("newFun<T>()"))
fun <T> oldFun() {
newFun<T>()
}
fun <T> newFun(){}
fun foo() {
newFun<String>()
}
@@ -0,0 +1,12 @@
// "Replace with 'newFun(p)'" "true"
@deprecated("", ReplaceWith("newFun(p)"))
fun oldFun(p: List<String>) {
newFun(p)
}
fun newFun(p: List<String>){}
fun foo() {
<caret>oldFun(listOf<String>("a"))
}
@@ -0,0 +1,12 @@
// "Replace with 'newFun(p)'" "true"
@deprecated("", ReplaceWith("newFun(p)"))
fun oldFun(p: List<String>) {
newFun(p)
}
fun newFun(p: List<String>){}
fun foo() {
<caret>newFun(listOf<String>("a"))
}
@@ -0,0 +1,14 @@
// "Replace with 'newFun(*elements)'" "true"
@deprecated("", ReplaceWith("newFun(*elements)"))
fun <T> oldFun(vararg elements: T) {
newFun(*elements)
}
fun <T> newFun(vararg elements: T){}
fun foo() {
<caret>oldFun(bar())
}
fun bar(): java.io.File? = null
@@ -0,0 +1,14 @@
// "Replace with 'newFun(*elements)'" "true"
@deprecated("", ReplaceWith("newFun(*elements)"))
fun <T> oldFun(vararg elements: T) {
newFun(*elements)
}
fun <T> newFun(vararg elements: T){}
fun foo() {
<caret>newFun(bar())
}
fun bar(): java.io.File? = null
@@ -0,0 +1,12 @@
// "Replace with 'newFun(*elements)'" "true"
@deprecated("", ReplaceWith("newFun(*elements)"))
fun <T> oldFun(vararg elements: T) {
newFun(*elements)
}
fun <T> newFun(vararg elements: T){}
fun foo() {
<caret>oldFun("a")
}
@@ -0,0 +1,12 @@
// "Replace with 'newFun(*elements)'" "true"
@deprecated("", ReplaceWith("newFun(*elements)"))
fun <T> oldFun(vararg elements: T) {
newFun(*elements)
}
fun <T> newFun(vararg elements: T){}
fun foo() {
newFun("a")
}
@@ -0,0 +1,12 @@
// "Replace with 'newFun(*elements)'" "true"
@deprecated("", ReplaceWith("newFun(*elements)"))
fun oldFun(vararg elements: java.io.File?) {
newFun(*elements)
}
fun newFun(vararg elements: java.io.File?){}
fun foo() {
<caret>oldFun()
}
@@ -0,0 +1,12 @@
// "Replace with 'newFun(*elements)'" "true"
@deprecated("", ReplaceWith("newFun(*elements)"))
fun oldFun(vararg elements: java.io.File?) {
newFun(*elements)
}
fun newFun(vararg elements: java.io.File?){}
fun foo() {
<caret>newFun()
}