Mark deprecated as a warning
#KT-3252 Fixed
This commit is contained in:
@@ -206,11 +206,11 @@ public class DeprecatedAnnotationVisitor extends AfterAnalysisHighlightingVisito
|
|||||||
AnnotationDescriptor deprecated = getDeprecated(descriptor);
|
AnnotationDescriptor deprecated = getDeprecated(descriptor);
|
||||||
if (deprecated != null) {
|
if (deprecated != null) {
|
||||||
if (isWarning) {
|
if (isWarning) {
|
||||||
holder.createInfoAnnotation(element, composeTooltipString(descriptor, deprecated))
|
holder.createWarningAnnotation(element, composeTooltipString(descriptor, deprecated))
|
||||||
.setTextAttributes(CodeInsightColors.WARNINGS_ATTRIBUTES);
|
.setTextAttributes(CodeInsightColors.WARNINGS_ATTRIBUTES);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
holder.createInfoAnnotation(element, composeTooltipString(descriptor, deprecated))
|
holder.createWarningAnnotation(element, composeTooltipString(descriptor, deprecated))
|
||||||
.setTextAttributes(CodeInsightColors.DEPRECATED_ATTRIBUTES);
|
.setTextAttributes(CodeInsightColors.DEPRECATED_ATTRIBUTES);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -1,15 +1,17 @@
|
|||||||
package test
|
package test
|
||||||
|
|
||||||
<info>import</info> java.util.ArrayList
|
import java.util.ArrayList
|
||||||
|
|
||||||
deprecated("Use A instead") <info>open</info> class MyClass {}
|
deprecated("Use A instead") open class MyClass {}
|
||||||
|
|
||||||
fun test() {
|
fun test() {
|
||||||
val a : <info descr="'test.MyClass' is deprecated. Use A instead">MyClass</info>? = null
|
val a : <warning descr="'test.MyClass' is deprecated. Use A instead">MyClass</warning>? = null
|
||||||
val b = <info descr="'test.MyClass' is deprecated. Use A instead">MyClass</info>()
|
val b = <warning descr="'test.MyClass' is deprecated. Use A instead">MyClass</warning>()
|
||||||
val c = ArrayList<<info descr="'test.MyClass' is deprecated. Use A instead">MyClass</info>>()
|
val c = ArrayList<<warning descr="'test.MyClass' is deprecated. Use A instead">MyClass</warning>>()
|
||||||
|
|
||||||
|
a == b && a == c
|
||||||
}
|
}
|
||||||
|
|
||||||
class Test(): <info descr="'test.MyClass' is deprecated. Use A instead">MyClass</info>() {}
|
class Test(): <warning descr="'test.MyClass' is deprecated. Use A instead">MyClass</warning>() {}
|
||||||
|
|
||||||
class Test2(param: <info descr="'test.MyClass' is deprecated. Use A instead">MyClass</info>) {}
|
class Test2(param: <warning descr="'test.MyClass' is deprecated. Use A instead">MyClass</warning>) {}
|
||||||
|
|||||||
@@ -1,19 +1,21 @@
|
|||||||
fun test() {
|
fun test() {
|
||||||
<info descr="'MyClass.<class-object-for-MyClass>' is deprecated. Use A instead">MyClass</info>.test
|
<warning descr="'MyClass.<class-object-for-MyClass>' is deprecated. Use A instead">MyClass</warning>.test
|
||||||
MyClass()
|
MyClass()
|
||||||
val a: MyClass? = null
|
val a: MyClass? = null
|
||||||
val b: MyTrait? = null
|
val b: MyTrait? = null
|
||||||
<info descr="'MyTrait.<class-object-for-MyTrait>' is deprecated. Use A instead">MyTrait</info>.test
|
<warning descr="'MyTrait.<class-object-for-MyTrait>' is deprecated. Use A instead">MyTrait</warning>.test
|
||||||
|
|
||||||
|
a == b
|
||||||
}
|
}
|
||||||
|
|
||||||
class MyClass(): MyTrait {
|
class MyClass(): MyTrait {
|
||||||
deprecated("Use A instead") class object {
|
deprecated("Use A instead") class object {
|
||||||
val <info>test</info>: String = ""
|
val test: String = ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
trait MyTrait {
|
trait MyTrait {
|
||||||
deprecated("Use A instead") class object {
|
deprecated("Use A instead") class object {
|
||||||
val <info>test</info>: String = ""
|
val test: String = ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
fun test() {
|
fun test() {
|
||||||
<info descr="'fun test1()' is deprecated. Use A instead">test1</info>()
|
<warning descr="'fun test1()' is deprecated. Use A instead">test1</warning>()
|
||||||
MyClass().<info descr="'fun test2()' is deprecated. Use A instead">test2</info>()
|
MyClass().<warning descr="'fun test2()' is deprecated. Use A instead">test2</warning>()
|
||||||
MyClass.<info descr="'fun test3()' is deprecated. Use A instead">test3</info>()
|
MyClass.<warning descr="'fun test3()' is deprecated. Use A instead">test3</warning>()
|
||||||
|
|
||||||
<info descr="'fun test4(x : jet.Int, y : jet.Int)' is deprecated. Use A instead">test4</info>(1, 2)
|
<warning descr="'fun test4(x : jet.Int, y : jet.Int)' is deprecated. Use A instead">test4</warning>(1, 2)
|
||||||
}
|
}
|
||||||
|
|
||||||
deprecated("Use A instead") fun test1() { }
|
deprecated("Use A instead") fun test1() { }
|
||||||
deprecated("Use A instead") fun test4(x: Int, y: Int) { }
|
deprecated("Use A instead") fun test4(x: Int, y: Int) { x + y }
|
||||||
|
|
||||||
class MyClass() {
|
class MyClass() {
|
||||||
deprecated("Use A instead") fun test2() {}
|
deprecated("Use A instead") fun test2() {}
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
class MyClass {}
|
class MyClass {}
|
||||||
|
|
||||||
deprecated("Use A instead") fun MyClass.get(i: MyClass): MyClass { return MyClass() }
|
deprecated("Use A instead") fun MyClass.get(i: MyClass): MyClass { return i }
|
||||||
|
|
||||||
fun test() {
|
fun test() {
|
||||||
val x1 = MyClass()
|
val x1 = MyClass()
|
||||||
val x2 = MyClass()
|
val x2 = MyClass()
|
||||||
|
|
||||||
<info descr="'fun get(i : MyClass)' is deprecated. Use A instead">x1[x2]</info>
|
<warning descr="'fun get(i : MyClass)' is deprecated. Use A instead">x1[x2]</warning>
|
||||||
}
|
}
|
||||||
@@ -1,19 +1,19 @@
|
|||||||
fun test() {
|
fun test() {
|
||||||
val c = MyClass()
|
val c = MyClass()
|
||||||
c.<info descr="'getter for test1' is deprecated. Use A instead">test1</info>
|
c.<warning descr="'getter for test1' is deprecated. Use A instead">test1</warning>
|
||||||
c.<info descr="'getter for test2' is deprecated. Use A instead">test2</info>
|
c.<warning descr="'getter for test2' is deprecated. Use A instead">test2</warning>
|
||||||
c.test2 = ""
|
c.test2 = ""
|
||||||
|
|
||||||
c.<info descr="'val test3' is deprecated. Use A instead">test3</info>
|
c.<warning descr="'val test3' is deprecated. Use A instead">test3</warning>
|
||||||
}
|
}
|
||||||
|
|
||||||
class MyClass() {
|
class MyClass() {
|
||||||
<info>public</info> val <info>test1</info>: String = ""
|
public val test1: String = ""
|
||||||
[deprecated("Use A instead")] <info>get</info>
|
[deprecated("Use A instead")] get
|
||||||
|
|
||||||
<info>public</info> var <info>test2</info>: String = ""
|
public var test2: String = ""
|
||||||
[deprecated("Use A instead")] <info>get</info>
|
[deprecated("Use A instead")] get
|
||||||
|
|
||||||
deprecated("Use A instead") <info>public</info> val <info>test3</info>: String = ""
|
deprecated("Use A instead") public val test3: String = ""
|
||||||
[deprecated("Use A instead")] <info>get</info>
|
[deprecated("Use A instead")] get
|
||||||
}
|
}
|
||||||
@@ -1,8 +1,11 @@
|
|||||||
class MyClass {}
|
class MyClass {
|
||||||
|
val i = 0
|
||||||
|
}
|
||||||
|
|
||||||
deprecated("Use A instead") fun MyClass.inc(): MyClass { return MyClass() }
|
deprecated("Use A instead") fun MyClass.inc(): MyClass { return MyClass() }
|
||||||
|
|
||||||
fun test() {
|
fun test() {
|
||||||
var x3 = MyClass()
|
var x3 = MyClass()
|
||||||
x3<info descr="'fun inc()' is deprecated. Use A instead">++</info>
|
x3<warning descr="'fun inc()' is deprecated. Use A instead">++</warning>
|
||||||
|
x3.i
|
||||||
}
|
}
|
||||||
@@ -5,5 +5,5 @@ deprecated("Use A instead") fun MyRunnable.invoke() {
|
|||||||
|
|
||||||
fun test() {
|
fun test() {
|
||||||
val m = MyRunnable()
|
val m = MyRunnable()
|
||||||
<info descr="'fun invoke()' is deprecated. Use A instead"><info>m</info>()</info>
|
<warning descr="'fun invoke()' is deprecated. Use A instead">m()</warning>
|
||||||
}
|
}
|
||||||
@@ -1,36 +1,38 @@
|
|||||||
class MyClass {}
|
class MyClass {
|
||||||
|
val i = 0
|
||||||
|
}
|
||||||
|
|
||||||
deprecated("Use A instead") fun MyClass.minus(i: MyClass) { }
|
deprecated("Use A instead") fun MyClass.minus(i: MyClass) { i.i }
|
||||||
deprecated("Use A instead") fun MyClass.div(i: MyClass) { }
|
deprecated("Use A instead") fun MyClass.div(i: MyClass) { i.i }
|
||||||
deprecated("Use A instead") fun MyClass.times(i: MyClass) { }
|
deprecated("Use A instead") fun MyClass.times(i: MyClass) { i.i }
|
||||||
|
|
||||||
deprecated("Use A instead") fun MyClass.not() { }
|
deprecated("Use A instead") fun MyClass.not() { }
|
||||||
deprecated("Use A instead") fun MyClass.plus() { }
|
deprecated("Use A instead") fun MyClass.plus() { }
|
||||||
|
|
||||||
deprecated("Use A instead") fun MyClass.contains(i: MyClass): Boolean { return false }
|
deprecated("Use A instead") fun MyClass.contains(i: MyClass): Boolean { i.i; return false }
|
||||||
|
|
||||||
deprecated("Use A instead") fun MyClass.plusAssign(i: MyClass) { }
|
deprecated("Use A instead") fun MyClass.plusAssign(i: MyClass) { i.i }
|
||||||
|
|
||||||
deprecated("Use A instead") fun MyClass.equals(i: Any?): Boolean { return false }
|
deprecated("Use A instead") fun MyClass.equals(i: Any?): Boolean { i == null; return false }
|
||||||
deprecated("Use A instead") fun MyClass.compareTo(i: MyClass): Int { return 0 }
|
deprecated("Use A instead") fun MyClass.compareTo(i: MyClass): Int { return i.i }
|
||||||
|
|
||||||
fun test() {
|
fun test() {
|
||||||
val x1 = MyClass()
|
val x1 = MyClass()
|
||||||
val x2 = MyClass()
|
val x2 = MyClass()
|
||||||
|
|
||||||
x1 <info descr="'fun minus(i : MyClass)' is deprecated. Use A instead">-</info> x2
|
x1 <warning descr="'fun minus(i : MyClass)' is deprecated. Use A instead">-</warning> x2
|
||||||
x1 <info descr="'fun div(i : MyClass)' is deprecated. Use A instead">/</info> x2
|
x1 <warning descr="'fun div(i : MyClass)' is deprecated. Use A instead">/</warning> x2
|
||||||
x1 <info descr="'fun times(i : MyClass)' is deprecated. Use A instead">*</info> x2
|
x1 <warning descr="'fun times(i : MyClass)' is deprecated. Use A instead">*</warning> x2
|
||||||
|
|
||||||
<info descr="'fun not()' is deprecated. Use A instead">!</info>x1
|
<warning descr="'fun not()' is deprecated. Use A instead">!</warning>x1
|
||||||
<info descr="'fun plus()' is deprecated. Use A instead">+</info>x1
|
<warning descr="'fun plus()' is deprecated. Use A instead">+</warning>x1
|
||||||
|
|
||||||
x1 <info descr="'fun contains(i : MyClass)' is deprecated. Use A instead">in</info> x2
|
x1 <warning descr="'fun contains(i : MyClass)' is deprecated. Use A instead">in</warning> x2
|
||||||
x1 <info descr="'fun contains(i : MyClass)' is deprecated. Use A instead">!in</info> x2
|
x1 <warning descr="'fun contains(i : MyClass)' is deprecated. Use A instead">!in</warning> x2
|
||||||
|
|
||||||
x1 <info descr="'fun plusAssign(i : MyClass)' is deprecated. Use A instead">+=</info> x2
|
x1 <warning descr="'fun plusAssign(i : MyClass)' is deprecated. Use A instead">+=</warning> x2
|
||||||
|
|
||||||
x1 <info descr="'fun equals(i : jet.Any?)' is deprecated. Use A instead">==</info> x2
|
x1 <warning descr="'fun equals(i : jet.Any?)' is deprecated. Use A instead">==</warning> x2
|
||||||
x1 <info descr="'fun equals(i : jet.Any?)' is deprecated. Use A instead">!=</info> x2
|
x1 <warning descr="'fun equals(i : jet.Any?)' is deprecated. Use A instead">!=</warning> x2
|
||||||
x1 <info descr="'fun compareTo(i : MyClass)' is deprecated. Use A instead">></info> x2
|
x1 <warning descr="'fun compareTo(i : MyClass)' is deprecated. Use A instead">></warning> x2
|
||||||
}
|
}
|
||||||
@@ -1,22 +1,22 @@
|
|||||||
fun test() {
|
fun test() {
|
||||||
<info descr="'val test1' is deprecated. Use A instead">test1</info>
|
<warning descr="'val test1' is deprecated. Use A instead">test1</warning> == ""
|
||||||
MyClass().<info descr="'val test2' is deprecated. Use A instead">test2</info>
|
MyClass().<warning descr="'val test2' is deprecated. Use A instead">test2</warning>
|
||||||
MyClass.<info descr="'val test3' is deprecated. Use A instead">test3</info>
|
MyClass.<warning descr="'val test3' is deprecated. Use A instead">test3</warning>
|
||||||
|
|
||||||
<info descr="'var test4' is deprecated. Use A instead">test4</info>
|
<warning descr="'var test4' is deprecated. Use A instead">test4</warning> == ""
|
||||||
MyClass().<info descr="'var test5' is deprecated. Use A instead">test5</info>
|
MyClass().<warning descr="'var test5' is deprecated. Use A instead">test5</warning>
|
||||||
MyClass.<info descr="'var test6' is deprecated. Use A instead">test6</info>
|
MyClass.<warning descr="'var test6' is deprecated. Use A instead">test6</warning>
|
||||||
}
|
}
|
||||||
|
|
||||||
deprecated("Use A instead") val <info>test1</info>: String = ""
|
deprecated("Use A instead") val test1: String = ""
|
||||||
deprecated("Use A instead") var <info>test4</info>: String = ""
|
deprecated("Use A instead") var test4: String = ""
|
||||||
|
|
||||||
class MyClass() {
|
class MyClass() {
|
||||||
deprecated("Use A instead") val <info>test2</info>: String = ""
|
deprecated("Use A instead") val test2: String = ""
|
||||||
deprecated("Use A instead") var <info>test5</info>: String = ""
|
deprecated("Use A instead") var test5: String = ""
|
||||||
|
|
||||||
class object {
|
class object {
|
||||||
deprecated("Use A instead") val <info>test3</info>: String = ""
|
deprecated("Use A instead") val test3: String = ""
|
||||||
deprecated("Use A instead") var <info>test6</info>: String = ""
|
deprecated("Use A instead") var test6: String = ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
class MyClass { }
|
class MyClass {
|
||||||
|
val i = 1
|
||||||
|
}
|
||||||
|
|
||||||
deprecated("Use A instead") fun MyClass.rangeTo(i: MyClass): IntIterator {
|
deprecated("Use A instead") fun MyClass.rangeTo(i: MyClass): IntIterator {
|
||||||
|
i.i
|
||||||
throw Exception()
|
throw Exception()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -8,7 +11,7 @@ fun test() {
|
|||||||
val x1 = MyClass()
|
val x1 = MyClass()
|
||||||
val x2 = MyClass()
|
val x2 = MyClass()
|
||||||
|
|
||||||
for (i in x1<info descr="'fun rangeTo(i : MyClass)' is deprecated. Use A instead">..</info>x2) {
|
for (i in x1<warning descr="'fun rangeTo(i : MyClass)' is deprecated. Use A instead">..</warning>x2) {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,26 +1,26 @@
|
|||||||
fun test() {
|
fun test() {
|
||||||
MyClass().test1
|
MyClass().test1
|
||||||
MyClass().<info descr="'setter for test1' is deprecated. Use A instead">test1</info> = 0
|
MyClass().<warning descr="'setter for test1' is deprecated. Use A instead">test1</warning> = 0
|
||||||
|
|
||||||
MyClass().<info descr="'setter for test1' is deprecated. Use A instead">test1</info>++
|
MyClass().<warning descr="'setter for test1' is deprecated. Use A instead">test1</warning>++
|
||||||
MyClass().<info descr="'setter for test1' is deprecated. Use A instead">test1</info>--
|
MyClass().<warning descr="'setter for test1' is deprecated. Use A instead">test1</warning>--
|
||||||
|
|
||||||
++MyClass().<info descr="'setter for test1' is deprecated. Use A instead">test1</info>
|
++MyClass().<warning descr="'setter for test1' is deprecated. Use A instead">test1</warning>
|
||||||
--MyClass().<info descr="'setter for test1' is deprecated. Use A instead">test1</info>
|
--MyClass().<warning descr="'setter for test1' is deprecated. Use A instead">test1</warning>
|
||||||
|
|
||||||
MyClass().<info descr="'setter for test1' is deprecated. Use A instead">test1</info> += 1
|
MyClass().<warning descr="'setter for test1' is deprecated. Use A instead">test1</warning> += 1
|
||||||
MyClass().<info descr="'setter for test1' is deprecated. Use A instead">test1</info> -= 1
|
MyClass().<warning descr="'setter for test1' is deprecated. Use A instead">test1</warning> -= 1
|
||||||
MyClass().<info descr="'setter for test1' is deprecated. Use A instead">test1</info> /= 1
|
MyClass().<warning descr="'setter for test1' is deprecated. Use A instead">test1</warning> /= 1
|
||||||
MyClass().<info descr="'setter for test1' is deprecated. Use A instead">test1</info> *= 1
|
MyClass().<warning descr="'setter for test1' is deprecated. Use A instead">test1</warning> *= 1
|
||||||
|
|
||||||
test2
|
test2 + 1
|
||||||
<info descr="'setter for test2' is deprecated. Use A instead">test2</info> = 10
|
<warning descr="'setter for test2' is deprecated. Use A instead">test2</warning> = 10
|
||||||
}
|
}
|
||||||
|
|
||||||
class MyClass() {
|
class MyClass() {
|
||||||
<info>public</info> var <info>test1</info>: Int = 0
|
public var test1: Int = 0
|
||||||
[deprecated("Use A instead")] <info>set</info>
|
[deprecated("Use A instead")] set
|
||||||
}
|
}
|
||||||
|
|
||||||
<info>public</info> var <info>test2</info>: Int = 0
|
public var test2: Int = 0
|
||||||
[deprecated("Use A instead")] <info>set</info>
|
[deprecated("Use A instead")] set
|
||||||
@@ -4,6 +4,6 @@ class MyClass(): Base() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
<info>open</info> class Base() {
|
open class Base() {
|
||||||
fun test1() {}
|
fun test1() {}
|
||||||
}
|
}
|
||||||
@@ -1,10 +1,11 @@
|
|||||||
deprecated("Use A instead") trait MyTrait { }
|
deprecated("Use A instead") trait MyTrait { }
|
||||||
|
|
||||||
fun test() {
|
fun test() {
|
||||||
val a: <info descr="'MyTrait' is deprecated. Use A instead">MyTrait</info>? = null
|
val a: <warning descr="'MyTrait' is deprecated. Use A instead">MyTrait</warning>? = null
|
||||||
val b: List<<info descr="'MyTrait' is deprecated. Use A instead">MyTrait</info>>? = null
|
val b: List<<warning descr="'MyTrait' is deprecated. Use A instead">MyTrait</warning>>? = null
|
||||||
|
a == b
|
||||||
}
|
}
|
||||||
|
|
||||||
class Test(): <info descr="'MyTrait' is deprecated. Use A instead">MyTrait</info> { }
|
class Test(): <warning descr="'MyTrait' is deprecated. Use A instead">MyTrait</warning> { }
|
||||||
|
|
||||||
class Test2(param: <info descr="'MyTrait' is deprecated. Use A instead">MyTrait</info>) {}
|
class Test2(param: <warning descr="'MyTrait' is deprecated. Use A instead">MyTrait</warning>) {}
|
||||||
+2
-2
@@ -13,12 +13,12 @@ public abstract class AbstractDeprecatedHighlightingTest extends LightDaemonAnal
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void doTest(String filePath) throws Exception {
|
protected void doTest(String filePath) throws Exception {
|
||||||
doTest(getTestName(false) + ".kt", false, true);
|
doTest(filePath, true, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
protected String getTestDataPath() {
|
protected String getTestDataPath() {
|
||||||
return PluginTestCaseBase.getTestDataPathBase() + "/highlighter/deprecated/";
|
return "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user