Do not replace in alias when constructor has special pattern (KT-19202)

#KT-19202 Fixed
This commit is contained in:
Nikolay Krasko
2017-07-24 16:04:22 +03:00
parent 1b93e2030f
commit 53373b66b9
14 changed files with 245 additions and 5 deletions
@@ -0,0 +1,10 @@
// "Replace with 'NewClass'" "true"
@Deprecated("", ReplaceWith("NewClass"))
class OldClass
class NewClass
typealias Old = <caret>OldClass
val a: Old = Old()
@@ -0,0 +1,10 @@
// "Replace with 'NewClass'" "true"
@Deprecated("", ReplaceWith("NewClass"))
class OldClass
class NewClass
typealias Old = <caret>NewClass
val a: Old = Old()
@@ -0,0 +1,13 @@
// "Replace with 'B'" "true"
class OldClass<T>
@Deprecated("Bad!", ReplaceWith("B"))
class A @Deprecated("Bad!", ReplaceWith("B()")) constructor()
class B
typealias Old = OldClass<<caret>A>
val o: Old = Old()
val a = A() // Usage of A()
@@ -0,0 +1,13 @@
// "Replace with 'B'" "true"
class OldClass<T>
@Deprecated("Bad!", ReplaceWith("B"))
class A @Deprecated("Bad!", ReplaceWith("B()")) constructor()
class B
typealias Old = OldClass<<caret>B>
val o: Old = Old()
val a = A() // Usage of A()
@@ -0,0 +1,10 @@
// "Replace with 'NewClass'" "true"
@Deprecated("", ReplaceWith("NewClass"))
class OldClass @Deprecated("", ReplaceWith("NewClass(12)")) constructor()
class NewClass(p: Int)
typealias Old = <caret>OldClass
val a: Old = null!!
@@ -0,0 +1,10 @@
// "Replace with 'NewClass'" "true"
@Deprecated("", ReplaceWith("NewClass"))
class OldClass @Deprecated("", ReplaceWith("NewClass(12)")) constructor()
class NewClass(p: Int)
typealias Old = <caret>NewClass
val a: Old = null!!
@@ -0,0 +1,14 @@
// "Replace with 'NewClass'" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
package aa
@Deprecated("", ReplaceWith("NewClass"))
class OldClass @Deprecated("", ReplaceWith("NewClass(12)")) constructor()
class NewClass(p: Int)
// No apply, error instead
typealias Old = <caret>OldClass
val a: Old = aa.Old()
@@ -0,0 +1,14 @@
// "Replace with 'NewClass'" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
package aa
@Deprecated("", ReplaceWith("NewClass"))
class OldClass @Deprecated("", ReplaceWith("NewClass(12)")) constructor()
class NewClass(p: Int)
// No apply, error instead
typealias Old = <caret>OldClass
val a: Old = aa.Old()
@@ -0,0 +1,12 @@
// "Replace with 'NewClass'" "true"
@Deprecated("", ReplaceWith("NewClass"))
class OldClass constructor() {
@Deprecated("", ReplaceWith("NewClass(12)")) constructor(i: Int): this()
}
class NewClass(p: Int = 0)
typealias Old = <caret>OldClass
val a: Old = Old()
@@ -0,0 +1,12 @@
// "Replace with 'NewClass'" "true"
@Deprecated("", ReplaceWith("NewClass"))
class OldClass constructor() {
@Deprecated("", ReplaceWith("NewClass(12)")) constructor(i: Int): this()
}
class NewClass(p: Int = 0)
typealias Old = <caret>NewClass
val a: Old = Old()
@@ -0,0 +1,14 @@
// "Replace with 'NewClass'" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
@Deprecated("", ReplaceWith("NewClass"))
class OldClass constructor() {
@Deprecated("", ReplaceWith("NewClass(12)")) constructor(i: Int): this()
}
class NewClass(p: Int)
// No apply, error instead
typealias Old = <caret>OldClass
val a: Old = Old(1)
@@ -0,0 +1,14 @@
// "Replace with 'NewClass'" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
@Deprecated("", ReplaceWith("NewClass"))
class OldClass constructor() {
@Deprecated("", ReplaceWith("NewClass(12)")) constructor(i: Int): this()
}
class NewClass(p: Int)
// No apply, error instead
typealias Old = <caret>OldClass
val a: Old = Old(1)