diff options
author | Deepak Azad | 2012-07-18 10:54:05 +0000 |
---|---|---|
committer | Deepak Azad | 2012-07-18 10:54:05 +0000 |
commit | 22988720aa26cd905b41e5cd1804536139f1c89b (patch) | |
tree | 4fa143cd5c3f75b2c81d3808cc8615bb5b1f40be | |
parent | 86bc8f61b4784ce158aa0b3332711b5f8e096b73 (diff) | |
download | eclipse.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
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) { |