From 7f160662a5918c4550385f18043261759c07efd7 Mon Sep 17 00:00:00 2001 From: "Roman.Ivanov" Date: Wed, 3 Apr 2019 11:57:36 +0700 Subject: [PATCH] AddExceptionToExistingCatch: supply more concrete intention text --- .../AddExceptionToExistingCatchFix.java | 17 +++++++---------- .../afterHierarchy.java | 2 +- .../afterMultipleExceptionsReplace.java | 2 +- .../afterSingleCatch.java | 2 +- .../beforeHierarchy.java | 2 +- .../beforeMultipleExceptionsReplace.java | 2 +- .../beforeSingleCatch.java | 2 +- .../java6/after1.java | 2 +- .../java6/after3.java | 2 +- .../java6/before1.java | 2 +- .../java6/before2.java | 2 +- .../java6/before3.java | 2 +- .../java6/beforeInsideLambda.java | 2 +- .../java6/beforeInsideMethodRef.java | 2 +- 14 files changed, 20 insertions(+), 23 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddExceptionToExistingCatchFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddExceptionToExistingCatchFix.java index 86e9aca1ad9f..e04496e66efd 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddExceptionToExistingCatchFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/AddExceptionToExistingCatchFix.java @@ -38,8 +38,6 @@ public class AddExceptionToExistingCatchFix extends PsiElementBaseIntentionActio List unhandledExceptions = context.myExceptions; List catches = context.myCatches; - setText(context.getMessage()); - if (catches.size() == 1) { PsiCatchSection selectedSection = catches.get(0); addTypeToCatch(unhandledExceptions, selectedSection); @@ -113,7 +111,12 @@ public class AddExceptionToExistingCatchFix extends PsiElementBaseIntentionActio @Override public boolean isAvailable(@NotNull Project project, Editor editor, @NotNull PsiElement element) { - return Context.from(myErrorElement) != null; + Context context = Context.from(myErrorElement); + if (context != null) { + setText(context.getMessage()); + return true; + } + return false; } @Nls @@ -123,12 +126,6 @@ public class AddExceptionToExistingCatchFix extends PsiElementBaseIntentionActio return QuickFixBundle.message("add.exception.to.existing.catch.family"); } - @NotNull - @Override - public String getText() { - return getFamilyName(); - } - private static class Context { private final List myCatches; private final List myExceptions; @@ -206,6 +203,6 @@ public class AddExceptionToExistingCatchFix extends PsiElementBaseIntentionActio } return false; } - return catchType.isAssignableFrom(newException); + return newException.isAssignableFrom(catchType); } } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/afterHierarchy.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/afterHierarchy.java index c7197660fb5b..56a2031cf354 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/afterHierarchy.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/afterHierarchy.java @@ -1,4 +1,4 @@ -// "Add exception to existing catch clause" "true" +// "Replace 'C' with more generic 'A'" "true" import java.io.Exception; class A extends Exception {} diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/afterMultipleExceptionsReplace.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/afterMultipleExceptionsReplace.java index 51e34bb95a8e..fcff613ad627 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/afterMultipleExceptionsReplace.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/afterMultipleExceptionsReplace.java @@ -1,4 +1,4 @@ -// "Add exception to existing catch clause" "true" +// "Replace 'C | D | B' with 'A'" "true" import java.io.IOException; class A extends Exception {} diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/afterSingleCatch.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/afterSingleCatch.java index 4b83934c184d..362507a0898d 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/afterSingleCatch.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/afterSingleCatch.java @@ -1,4 +1,4 @@ -// "Add exception to existing catch clause" "true" +// "Replace 'IndexOutOfBoundsException' with 'IOException'" "true" import java.io.File; import java.io.IOException; diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/beforeHierarchy.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/beforeHierarchy.java index 420838b72408..0627dee460fe 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/beforeHierarchy.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/beforeHierarchy.java @@ -1,4 +1,4 @@ -// "Add exception to existing catch clause" "true" +// "Replace 'C' with more generic 'A'" "true" import java.io.Exception; class A extends Exception {} diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/beforeMultipleExceptionsReplace.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/beforeMultipleExceptionsReplace.java index e367b2df5e9a..2be8c47ad4c6 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/beforeMultipleExceptionsReplace.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/beforeMultipleExceptionsReplace.java @@ -1,4 +1,4 @@ -// "Add exception to existing catch clause" "true" +// "Replace 'C | D | B' with 'A'" "true" import java.io.IOException; class A extends Exception {} diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/beforeSingleCatch.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/beforeSingleCatch.java index f5e44f831633..c1e87719116a 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/beforeSingleCatch.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/beforeSingleCatch.java @@ -1,4 +1,4 @@ -// "Add exception to existing catch clause" "true" +// "Replace 'IndexOutOfBoundsException' with 'IOException'" "true" import java.io.File; class Test { diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/java6/after1.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/java6/after1.java index 2918ef4d84cf..ff13498dbf3b 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/java6/after1.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/java6/after1.java @@ -1,4 +1,4 @@ -// "Add exception to existing catch clause" "true" +// "Replace 'FileNotFoundException' with more generic 'IOException'" "true" import java.io.*; diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/java6/after3.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/java6/after3.java index a94e4bcdbd30..5bbe3f55d747 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/java6/after3.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/java6/after3.java @@ -1,4 +1,4 @@ -// "Add exception to existing catch clause" "true" +// "Replace 'E1' with more generic 'E'" "true" class C { static class E extends Exception { } static class E1 extends E { } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/java6/before1.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/java6/before1.java index 75663d46bc4b..2a970778cdcf 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/java6/before1.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/java6/before1.java @@ -1,4 +1,4 @@ -// "Add exception to existing catch clause" "true" +// "Replace 'FileNotFoundException' with more generic 'IOException'" "true" import java.io.*; diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/java6/before2.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/java6/before2.java index 3489205e9225..15e159d5cdbc 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/java6/before2.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/java6/before2.java @@ -1,4 +1,4 @@ -// "Add exception to existing catch clause" "false" +// "Replace 'FileNotFoundException' with more generic 'IllegalAccessException'" "false" import java.io.*; diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/java6/before3.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/java6/before3.java index 7d33a905d938..9f9c0810d9b8 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/java6/before3.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/java6/before3.java @@ -1,4 +1,4 @@ -// "Add exception to existing catch clause" "true" +// "Replace 'E1' with more generic 'E'" "true" class C { static class E extends Exception { } static class E1 extends E { } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/java6/beforeInsideLambda.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/java6/beforeInsideLambda.java index d3a8c33a6181..67217c66f7d9 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/java6/beforeInsideLambda.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/java6/beforeInsideLambda.java @@ -1,4 +1,4 @@ -// "Add exception to existing catch clause" "false" +// "Replace 'Exception' with more generic 'Exception'" "false" import java.util.function.Supplier; class C { diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/java6/beforeInsideMethodRef.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/java6/beforeInsideMethodRef.java index d25deae0bc5b..80f964df9077 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/java6/beforeInsideMethodRef.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/addExceptionToExistingCatch/java6/beforeInsideMethodRef.java @@ -1,4 +1,4 @@ -// "Add exception to existing catch clause" "false" +// "Replace 'Exception' with more generic 'Exception'" "false" import java.util.function.Supplier; class C {