Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDeepak Azad2012-07-18 10:54:05 +0000
committerDeepak Azad2012-07-18 10:54:05 +0000
commit22988720aa26cd905b41e5cd1804536139f1c89b (patch)
tree4fa143cd5c3f75b2c81d3808cc8615bb5b1f40be
parent86bc8f61b4784ce158aa0b3332711b5f8e096b73 (diff)
downloadeclipse.jdt.ui-dazad/bug-339223-replace-integer-literals-with-constants.tar.gz
eclipse.jdt.ui-dazad/bug-339223-replace-integer-literals-with-constants.tar.xz
eclipse.jdt.ui-dazad/bug-339223-replace-integer-literals-with-constants.zip
Bug 385389: [quick assist] 'Invert equals' not available for enum comparisons.dazad/bug-339223-replace-integer-literals-with-constants
-rw-r--r--org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/quickfix/AssistQuickFixTest.java61
-rw-r--r--org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/QuickAssistProcessor.java2
2 files changed, 61 insertions, 2 deletions
diff --git a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/quickfix/AssistQuickFixTest.java b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/quickfix/AssistQuickFixTest.java
index e10cac0ee9..3e39d3ac05 100644
--- a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/quickfix/AssistQuickFixTest.java
+++ b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/quickfix/AssistQuickFixTest.java
@@ -2396,7 +2396,7 @@ public class AssistQuickFixTest extends QuickFixTest {
private static final Class[] FILTER_EQ= { LinkedNamesAssistProposal.class, RenameRefactoringProposal.class, AssignToVariableAssistProposal.class };
- public void testInvertEquals() throws Exception {
+ public void testInvertEquals1() throws Exception {
IPackageFragment pack1= fSourceFolder.createPackageFragment("test1", false, null);
StringBuffer buf= new StringBuffer();
buf.append("package test1;\n");
@@ -3388,6 +3388,65 @@ public class AssistQuickFixTest extends QuickFixTest {
assertEqualString(preview, buf.toString());
}
+ public void testInvertEquals24() throws Exception {
+ //https://bugs.eclipse.org/bugs/show_bug.cgi?id=385389
+ IPackageFragment pack1= fSourceFolder.createPackageFragment("test1", false, null);
+ StringBuffer buf= new StringBuffer();
+ buf.append("package test1;\n");
+ buf.append("public class E {\n");
+ buf.append(" public void foo(Enum e) {\n");
+ buf.append(" e.equals(Enum.e1);\n");
+ buf.append(" }\n");
+ buf.append("}\n");
+ buf.append("enum Enum {\n");
+ buf.append(" e1, e2;\n");
+ buf.append("}\n");
+ ICompilationUnit cu= pack1.createCompilationUnit("E.java", buf.toString(), false, null);
+
+ String str= "equals";
+ AssistContext context= getCorrectionContext(cu, buf.toString().indexOf(str), 0);
+ List proposals= collectAssists(context, FILTER_EQ);
+
+ assertNumberOfProposals(proposals, 1);
+ assertCorrectLabels(proposals);
+
+ CUCorrectionProposal proposal= (CUCorrectionProposal)proposals.get(0);
+ String preview= getPreviewContent(proposal);
+
+ buf= new StringBuffer();
+ buf.append("package test1;\n");
+ buf.append("public class E {\n");
+ buf.append(" public void foo(Enum e) {\n");
+ buf.append(" Enum.e1.equals(e);\n");
+ buf.append(" }\n");
+ buf.append("}\n");
+ buf.append("enum Enum {\n");
+ buf.append(" e1, e2;\n");
+ buf.append("}\n");
+ assertEqualString(preview, buf.toString());
+
+ cu= pack1.createCompilationUnit("E.java", buf.toString(), true, null);
+ context= getCorrectionContext(cu, buf.toString().indexOf(str), 0);
+ proposals= collectAssists(context, FILTER_EQ);
+
+ assertNumberOfProposals(proposals, 1);
+ assertCorrectLabels(proposals);
+
+ proposal= (CUCorrectionProposal)proposals.get(0);
+ preview= getPreviewContent(proposal);
+
+ buf= new StringBuffer();
+ buf.append("package test1;\n");
+ buf.append("public class E {\n");
+ buf.append(" public void foo(Enum e) {\n");
+ buf.append(" e.equals(Enum.e1);\n");
+ buf.append(" }\n");
+ buf.append("}\n");
+ buf.append("enum Enum {\n");
+ buf.append(" e1, e2;\n");
+ buf.append("}\n");
+ assertEqualString(preview, buf.toString());
+ }
public void testAddTypeToArrayInitializer() throws Exception {
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/QuickAssistProcessor.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/QuickAssistProcessor.java
index c90dd5832a..6c8a24abe4 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/QuickAssistProcessor.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/QuickAssistProcessor.java
@@ -2091,7 +2091,7 @@ public class QuickAssistProcessor implements IQuickAssistProcessor {
}
Expression right= arguments.get(0);
ITypeBinding binding = right.resolveTypeBinding();
- if (binding != null && !(binding.isClass() || binding.isInterface())) { //overloaded equals w/ non-class/interface argument or null
+ if (binding != null && !(binding.isClass() || binding.isInterface() || binding.isEnum())) { //overloaded equals w/ non-class/interface argument or null
return false;
}
if (resultingCollections == null) {

Back to the top