ReplaceWith intention could save generic type arguments

#KT-21195 Fixed
This commit is contained in:
Dmitry Gridin
2019-03-27 19:20:43 +07:00
parent b0f7ddd693
commit 88b0db6dd7
16 changed files with 199 additions and 2 deletions
@@ -0,0 +1,11 @@
// "Replace with 'NewClass<T>'" "true"
package ppp
@Deprecated("renamed", ReplaceWith("NewClass<T>"))
class OldClass<T>
class NewClass<F>
fun foo() {
<caret>OldClass<Int>()
}
@@ -0,0 +1,11 @@
// "Replace with 'NewClass<T>'" "true"
package ppp
@Deprecated("renamed", ReplaceWith("NewClass<T>"))
class OldClass<T>
class NewClass<F>
fun foo() {
<caret>NewClass<Int>()
}
@@ -0,0 +1,11 @@
// "Replace with 'NewClass<Int>'" "true"
package ppp
@Deprecated("", ReplaceWith("NewClass<Int>"))
class OldClass<T, V>
class NewClass<F>
fun foo() {
<caret>OldClass<Int, String>()
}
@@ -0,0 +1,11 @@
// "Replace with 'NewClass<Int>'" "true"
package ppp
@Deprecated("", ReplaceWith("NewClass<Int>"))
class OldClass<T, V>
class NewClass<F>
fun foo() {
<caret>NewClass<Int>()
}
@@ -0,0 +1,11 @@
// "Replace with 'NewClass'" "true"
package ppp
@Deprecated("", ReplaceWith("NewClass"))
class OldClass<T, V>
class NewClass
fun foo() {
<caret>OldClass<Int, String>()
}
@@ -0,0 +1,11 @@
// "Replace with 'NewClass'" "true"
package ppp
@Deprecated("", ReplaceWith("NewClass"))
class OldClass<T, V>
class NewClass
fun foo() {
<caret>NewClass()
}
@@ -0,0 +1,12 @@
// "Replace with 'B<N>'" "true"
// WITH_RUNTIME
@Deprecated(message = "renamed", replaceWith = ReplaceWith("B<N>"))
typealias A<E> = List<E>
abstract class B<T> : List<T>
class F<G>
fun test() {
var x: <caret>A<F<Int>>
}
@@ -0,0 +1,12 @@
// "Replace with 'B<N>'" "true"
// WITH_RUNTIME
@Deprecated(message = "renamed", replaceWith = ReplaceWith("B<N>"))
typealias A<E> = List<E>
abstract class B<T> : List<T>
class F<G>
fun test() {
var x: <caret>B<F<Int>>
}
@@ -0,0 +1,10 @@
// "Replace with 'B<Int>'" "true"
@Deprecated("", ReplaceWith("B<Int>"))
class C<T, F>
class B<T>
fun foo() {
var c: <caret>C<Int, String>
}
@@ -0,0 +1,10 @@
// "Replace with 'B<Int>'" "true"
@Deprecated("", ReplaceWith("B<Int>"))
class C<T, F>
class B<T>
fun foo() {
var c: <caret>B<Int>
}
@@ -0,0 +1,10 @@
// "Replace with 'B'" "true"
@Deprecated("", ReplaceWith("B"))
class C<T, F>
class B
fun foo() {
var c: <caret>C<Int, String>
}
@@ -0,0 +1,10 @@
// "Replace with 'B'" "true"
@Deprecated("", ReplaceWith("B"))
class C<T, F>
class B
fun foo() {
var c: <caret>B
}
@@ -0,0 +1,9 @@
// "Replace with 'B<E>'" "true"
// WITH_RUNTIME
@Deprecated(message = "renamed", replaceWith = ReplaceWith("B<E>"))
typealias A<E> = List<E>
typealias B<E> = List<E>
val x: <caret>A<String> = emptyList()
@@ -0,0 +1,9 @@
// "Replace with 'B<E>'" "true"
// WITH_RUNTIME
@Deprecated(message = "renamed", replaceWith = ReplaceWith("B<E>"))
typealias A<E> = List<E>
typealias B<E> = List<E>
val x: B<String> = emptyList()