Mark deprecated as a warning

#KT-3252 Fixed
This commit is contained in:
Natalia.Ukhorskaya
2013-01-21 16:34:07 +04:00
parent d7c8655966
commit 9422fea0c4
15 changed files with 100 additions and 87 deletions
@@ -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() {}
+2 -2
View File
@@ -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
} }
+5 -2
View File
@@ -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) {
} }
} }
+15 -15
View File
@@ -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>) {}
@@ -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 "";
} }
} }