DeprecatedSymbolUsageFix: fixed for java declaration + one more test

This commit is contained in:
Valentin Kipyatkov
2015-05-26 17:55:56 +03:00
parent 18c19457f0
commit 697516cfdd
7 changed files with 43 additions and 2 deletions
@@ -83,7 +83,7 @@ public class DirectiveBasedActionUtils {
}
})));
UsefulTestCase.assertOrderedEquals("Some unexpected actions available at current position: %s. Use // ACTION: directive",
UsefulTestCase.assertOrderedEquals("Some unexpected actions available at current position. Use // ACTION: directive",
filterOutIrrelevantActions(actualActions), filterOutIrrelevantActions(validActions));
}
@@ -107,7 +107,8 @@ public abstract class DeprecatedSymbolUsageFixBase(
companion object {
public fun replaceWithPattern(descriptor: DeclarationDescriptor): ReplaceWith? {
val annotationClass = descriptor.builtIns.getDeprecatedAnnotation()
val annotation = descriptor.getAnnotations().findAnnotation(DescriptorUtils.getFqNameSafe(annotationClass))!!
val annotation = descriptor.getAnnotations().findAnnotation(DescriptorUtils.getFqNameSafe(annotationClass)) ?: return null
//TODO: code duplication
val replaceWithValue = annotation.getAllValueArguments().entrySet()
.singleOrNull { it.key.getName().asString() == "replaceWith"/*TODO*/ }
?.value?.getValue() as? AnnotationDescriptor ?: return null
@@ -0,0 +1,8 @@
// "class org.jetbrains.kotlin.idea.quickfix.DeprecatedSymbolUsageFix" "false"
@deprecated("")
class C(p: Int)
fun foo() {
<caret>C(1)
}
@@ -0,0 +1,4 @@
class JavaClass {
@Deprecated
public void oldFun(){}
}
@@ -0,0 +1,7 @@
// "class org.jetbrains.kotlin.idea.quickfix.DeprecatedSymbolUsageFix" "false"
// ACTION: Inspection 'DEPRECATED_SYMBOL_WITH_MESSAGE' options
fun foo() {
val c = JavaClass()
c.<caret>oldFun()
}
@@ -852,6 +852,12 @@ public class QuickFixMultiFileTestGenerated extends AbstractQuickFixMultiFileTes
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/quickfix/deprecatedSymbolUsage"), Pattern.compile("^(\\w+)\\.before\\.Main\\.kt$"), true);
}
@TestMetadata("javaDeprecated.before.Main.kt")
public void testJavaDeprecated() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/deprecatedSymbolUsage/javaDeprecated.before.Main.kt");
doTestWithExtraFile(fileName);
}
@TestMetadata("toMethodFromCompanionObject.before.Main.kt")
public void testToMethodFromCompanionObject() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/deprecatedSymbolUsage/toMethodFromCompanionObject.before.Main.kt");
@@ -3175,6 +3175,21 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest {
}
}
@TestMetadata("idea/testData/quickfix/deprecatedSymbolUsage/classUsages")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class ClassUsages extends AbstractQuickFixTest {
public void testAllFilesPresentInClassUsages() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/quickfix/deprecatedSymbolUsage/classUsages"), Pattern.compile("^([\\w\\-_]+)\\.kt$"), true);
}
@TestMetadata("noAnnotationConstructorUsage.kt")
public void testNoAnnotationConstructorUsage() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/deprecatedSymbolUsage/classUsages/noAnnotationConstructorUsage.kt");
doTest(fileName);
}
}
@TestMetadata("idea/testData/quickfix/deprecatedSymbolUsage/functionLiteralArguments")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)