From 2ae13ed76b2dacc9e8a188ce567fe3bc5d411198 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Fri, 2 Oct 2015 18:55:31 +0300 Subject: [PATCH] KT-9380 Handle malformed ReplaceWith annotations gracefully #KT-9380 Fixed --- .../replaceWith/ReplaceWithAnnotationAnalyzer.kt | 2 +- .../deprecatedSymbolUsage/mailformedExpression.kt | 9 +++++++++ .../kotlin/idea/quickfix/QuickFixTestGenerated.java | 6 ++++++ 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 idea/testData/quickfix/deprecatedSymbolUsage/mailformedExpression.kt diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/replaceWith/ReplaceWithAnnotationAnalyzer.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/replaceWith/ReplaceWithAnnotationAnalyzer.kt index 662d0348aa2..f89d79ad97f 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/replaceWith/ReplaceWithAnnotationAnalyzer.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/replaceWith/ReplaceWithAnnotationAnalyzer.kt @@ -85,7 +85,7 @@ object ReplaceWithAnnotationAnalyzer { var expression = try { psiFactory.createExpression(annotation.pattern) } - catch(e: Exception) { + catch(t: Throwable) { return null } diff --git a/idea/testData/quickfix/deprecatedSymbolUsage/mailformedExpression.kt b/idea/testData/quickfix/deprecatedSymbolUsage/mailformedExpression.kt new file mode 100644 index 00000000000..cb77e814ac6 --- /dev/null +++ b/idea/testData/quickfix/deprecatedSymbolUsage/mailformedExpression.kt @@ -0,0 +1,9 @@ +// "class org.jetbrains.kotlin.idea.quickfix.replaceWith.DeprecatedSymbolUsageFix" "false" + +@Deprecated("", ReplaceWith("order.safeAddItem(...)")) +fun oldFun() { +} + +fun foo() { + oldFun() +} diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java index a312ae67d02..c646308902a 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java @@ -3130,6 +3130,12 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest { doTest(fileName); } + @TestMetadata("mailformedExpression.kt") + public void testMailformedExpression() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/deprecatedSymbolUsage/mailformedExpression.kt"); + doTest(fileName); + } + @TestMetadata("memberFunction.kt") public void testMemberFunction() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/deprecatedSymbolUsage/memberFunction.kt");