Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 243292 Details for
Bug 90140
[quick fix] for qualified enum constants in switch-case labels
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Unit Test + Patch
90140.diff (text/plain), 10.49 KB, created by
sandra lions
on 2014-05-20 09:22:34 EDT
(
hide
)
Description:
Unit Test + Patch
Filename:
MIME Type:
Creator:
sandra lions
Created:
2014-05-20 09:22:34 EDT
Size:
10.49 KB
patch
obsolete
>diff --git a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/quickfix/LocalCorrectionsQuickFixTest.java b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/quickfix/LocalCorrectionsQuickFixTest.java >index c855562..30bef57 100644 >--- a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/quickfix/LocalCorrectionsQuickFixTest.java >+++ b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/quickfix/LocalCorrectionsQuickFixTest.java >@@ -10,6 +10,7 @@ > * Benjamin Muskalla <bmuskalla@innoopract.com> - [quick fix] Shouldn't offer "Add throws declaration" quickfix for overriding signature if result would conflict with overridden signature > * Lukas Hanke <hanke@yatta.de> - Bug 241696 [quick fix] quickfix to iterate over a collection - https://bugs.eclipse.org/bugs/show_bug.cgi?id=241696 > * Lukas Hanke <hanke@yatta.de> - Bug 430818 [1.8][quick fix] Quick fix for "for loop" is not shown for bare local variable/argument/field - https://bugs.eclipse.org/bugs/show_bug.cgi?id=430818 >+ * Sandra Lions <sandra.lions-piron@oracle.com> - Bug 90140 - [quick fix] for qualified enum constants in switch-case labels > *******************************************************************************/ > package org.eclipse.jdt.ui.tests.quickfix; > >@@ -9173,6 +9174,56 @@ public class LocalCorrectionsQuickFixTest extends QuickFixTest { > assertExpectedExistInProposals(proposals, expected); > } > >+ public void testReplaceWithUnqualifiedEnumConstant() throws Exception { >+ final IPackageFragment pack1= fSourceFolder.createPackageFragment("pack", false, null); >+ StringBuffer buf= new StringBuffer(); >+ buf.append("package pack;\n"); >+ buf.append("public class E {\n"); >+ buf.append(" public enum color {black, white}\n"); >+ buf.append(" public void foo(color c) {\n"); >+ buf.append(" switch (c) {\n"); >+ buf.append(" case color.black:\n"); >+ buf.append(" System.out.println(\"Black\");\n"); >+ buf.append(" break;\n"); >+ buf.append(" case color.white:\n"); >+ buf.append(" System.out.println(\"White\");\n"); >+ buf.append(" break;\n"); >+ buf.append(" default:\n"); >+ buf.append(" break;\n"); >+ buf.append(" }\n"); >+ buf.append(" }\n"); >+ buf.append("}\n"); >+ final ICompilationUnit cu= pack1.createCompilationUnit("E.java", buf.toString(), false, null); >+ >+ final CompilationUnit astRoot= getASTRoot(cu); >+ final ArrayList proposals= collectCorrections(cu, astRoot, 2); >+ >+ assertNumberOfProposals(proposals, 1); >+ assertCorrectLabels(proposals); >+ >+ final CUCorrectionProposal proposal= (CUCorrectionProposal)proposals.get(0); >+ final String preview= getPreviewContent(proposal); >+ >+ buf= new StringBuffer(); >+ buf.append("package pack;\n"); >+ buf.append("public class E {\n"); >+ buf.append(" public enum color {black, white}\n"); >+ buf.append(" public void foo(color c) {\n"); >+ buf.append(" switch (c) {\n"); >+ buf.append(" case black:\n"); >+ buf.append(" System.out.println(\"Black\");\n"); >+ buf.append(" break;\n"); >+ buf.append(" case color.white:\n"); >+ buf.append(" System.out.println(\"White\");\n"); >+ buf.append(" break;\n"); >+ buf.append(" default:\n"); >+ buf.append(" break;\n"); >+ buf.append(" }\n"); >+ buf.append(" }\n"); >+ buf.append("}\n"); >+ assertEqualString(preview, buf.toString()); >+ } >+ > public void testCollectionsFieldMethodReplacement() throws Exception { > Hashtable options= JavaCore.getOptions(); > options.put(JavaCore.COMPILER_PB_UNCHECKED_TYPE_OPERATION, JavaCore.WARNING); >diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/CorrectionMessages.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/CorrectionMessages.java >index 146c181..5a27a60 100644 >--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/CorrectionMessages.java >+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/CorrectionMessages.java >@@ -392,6 +392,7 @@ public final class CorrectionMessages extends NLS { > public static String LocalCorrectionsSubProcessor_insert_cases_omitted; > public static String LocalCorrectionsSubProcessor_insert_fall_through; > public static String LocalCorrectionsSubProcessor_override_hashCode_description; >+ public static String LocalCorrectionsSubProcessor_replace_with_unqualified_enum_constant; > public static String LocalCorrectionsSubProcessor_throw_allocated_description; > public static String SuppressWarningsSubProcessor_fix_suppress_token_label; > public static String SuppressWarningsSubProcessor_remove_annotation_label; >diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/CorrectionMessages.properties b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/CorrectionMessages.properties >index 567ab7c..028d8bf 100644 >--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/CorrectionMessages.properties >+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/CorrectionMessages.properties >@@ -117,6 +117,7 @@ LocalCorrectionsSubProcessor_qualify_left_hand_side_description=Qualify left han > LocalCorrectionsSubProcessor_replacefieldaccesswithmethod_description=Replace with ''{0}'' > LocalCorrectionsSubProcessor_return_allocated_description=Return the allocated object > LocalCorrectionsSubProcessor_throw_allocated_description=Throw the allocated object >+LocalCorrectionsSubProcessor_replace_with_unqualified_enum_constant=Replace with unqualified enum constant ''{0}'' > TypeMismatchSubProcessor_addcast_description=Add cast to ''{0}'' > TypeMismatchSubProcessor_changecast_description=Change cast to ''{0}'' > TypeMismatchSubProcessor_changereturntype_description=Change method return type to ''{0}'' >diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/IProposalRelevance.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/IProposalRelevance.java >index db38590..4e6b5f5 100644 >--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/IProposalRelevance.java >+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/IProposalRelevance.java >@@ -180,6 +180,7 @@ public interface IProposalRelevance { > public static final int CORRECT_PACKAGE_DECLARATION= 5; > public static final int TYPE_ARGUMENTS_FROM_CONTEXT= 5; > public static final int REMOVE_REDUNDANT_NULLNESS_ANNOTATION= 5; >+ public static final int REPLACE_WITH_UNQUALIFIED_ENUM_CONSTANT= 5; > > public static final int ADD_MISSING_TAG= 4; > public static final int INSERT_FALL_THROUGH= 4; >diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/LocalCorrectionsSubProcessor.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/LocalCorrectionsSubProcessor.java >index a91c77e..ff8f7ae 100644 >--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/LocalCorrectionsSubProcessor.java >+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/LocalCorrectionsSubProcessor.java >@@ -10,6 +10,7 @@ > * Renaud Waldura <renaud+eclipse@waldura.com> - Access to static proposal > * Benjamin Muskalla <bmuskalla@innoopract.com> - [quick fix] Shouldn't offer "Add throws declaration" quickfix for overriding signature if result would conflict with overridden signature > * Lukas Hanke <hanke@yatta.de> - Bug 241696 [quick fix] quickfix to iterate over a collection - https://bugs.eclipse.org/bugs/show_bug.cgi?id=241696 >+ * Sandra Lions <sandra.lions-piron@oracle.com> - Bug 90140 - [quick fix] for qualified enum constants in switch-case labels > *******************************************************************************/ > package org.eclipse.jdt.internal.ui.text.correction; > >@@ -765,6 +766,24 @@ public class LocalCorrectionsSubProcessor { > } > > } >+ >+ public static void addIllegalQualifiedEnumConstantLabelProposal(IInvocationContext context, IProblemLocation problem, Collection<ICommandAccess> proposals) { >+ ASTNode coveringNode= problem.getCoveringNode(context.getASTRoot()); >+ if (!(coveringNode instanceof QualifiedName)) { >+ return; >+ } >+ final QualifiedName qualifiedName= (QualifiedName) coveringNode; >+ final SimpleName simpleName= qualifiedName.getName(); >+ >+ final AST ast= coveringNode.getAST(); >+ final ASTRewrite rewrite= ASTRewrite.create(ast); >+ rewrite.replace(coveringNode, simpleName, null); >+ >+ final String label= Messages.format(CorrectionMessages.LocalCorrectionsSubProcessor_replace_with_unqualified_enum_constant, BasicElementLabels.getJavaElementName(simpleName.getIdentifier())); >+ final Image image= JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_CHANGE); >+ ASTRewriteCorrectionProposal proposal= new ASTRewriteCorrectionProposal(label, context.getCompilationUnit(), rewrite, IProposalRelevance.REPLACE_WITH_UNQUALIFIED_ENUM_CONSTANT, image); >+ proposals.add(proposal); >+ } > > public static void addUnnecessaryThrownExceptionProposal(IInvocationContext context, IProblemLocation problem, Collection<ICommandAccess> proposals) { > ASTNode selectedNode= problem.getCoveringNode(context.getASTRoot()); >diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/QuickFixProcessor.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/QuickFixProcessor.java >index 0ef12af..03f349d 100644 >--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/QuickFixProcessor.java >+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/QuickFixProcessor.java >@@ -161,6 +161,7 @@ public class QuickFixProcessor implements IQuickFixProcessor { > case IProblem.DuplicateMethod: > case IProblem.DuplicateTypeVariable: > case IProblem.DuplicateNestedType: >+ case IProblem.IllegalQualifiedEnumConstantLabel: > case IProblem.IllegalModifierForInterfaceMethod: > case IProblem.IllegalModifierForInterfaceMethod18: > case IProblem.IllegalModifierForInterface: >@@ -760,6 +761,9 @@ public class QuickFixProcessor implements IQuickFixProcessor { > NullAnnotationsCorrectionProcessor.addReturnAndArgumentTypeProposal(context, problem, ChangeKind.LOCAL, proposals); > NullAnnotationsCorrectionProcessor.addReturnAndArgumentTypeProposal(context, problem, ChangeKind.INVERSE, proposals); > break; >+ case IProblem.IllegalQualifiedEnumConstantLabel: >+ LocalCorrectionsSubProcessor.addIllegalQualifiedEnumConstantLabelProposal(context, problem, proposals); >+ break; > default: > } > if (JavaModelUtil.is50OrHigher(context.getCompilationUnit().getJavaProject())) {
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 90140
:
243292
|
243645
|
243673