diff --git a/codan/org.eclipse.cdt.codan.checkers/src/org/eclipse/cdt/codan/internal/checkers/ReturnStyleChecker.java b/codan/org.eclipse.cdt.codan.checkers/src/org/eclipse/cdt/codan/internal/checkers/ReturnStyleChecker.java index 403b73b5ece..ae17a79870a 100644 --- a/codan/org.eclipse.cdt.codan.checkers/src/org/eclipse/cdt/codan/internal/checkers/ReturnStyleChecker.java +++ b/codan/org.eclipse.cdt.codan.checkers/src/org/eclipse/cdt/codan/internal/checkers/ReturnStyleChecker.java @@ -22,7 +22,7 @@ import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression; public class ReturnStyleChecker extends AbstractIndexAstChecker { - public final String ERR_ID = "org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem"; //$NON-NLS-1$ + public static final String ERR_ID = "org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem"; //$NON-NLS-1$ @Override public boolean runInEditor() { diff --git a/codan/org.eclipse.cdt.codan.core.tests/src/org/eclipse/cdt/codan/internal/checkers/ui/quickfix/QuickFixSuppressProblemTest.java b/codan/org.eclipse.cdt.codan.core.tests/src/org/eclipse/cdt/codan/internal/checkers/ui/quickfix/QuickFixSuppressProblemTest.java index 5a7d4dc68e4..ce86fe576f0 100644 --- a/codan/org.eclipse.cdt.codan.core.tests/src/org/eclipse/cdt/codan/internal/checkers/ui/quickfix/QuickFixSuppressProblemTest.java +++ b/codan/org.eclipse.cdt.codan.core.tests/src/org/eclipse/cdt/codan/internal/checkers/ui/quickfix/QuickFixSuppressProblemTest.java @@ -16,10 +16,13 @@ package org.eclipse.cdt.codan.internal.checkers.ui.quickfix; import java.io.BufferedWriter; import java.io.FileWriter; +import org.eclipse.cdt.codan.internal.checkers.CommentChecker; +import org.eclipse.cdt.codan.internal.checkers.ReturnStyleChecker; import org.eclipse.cdt.codan.ui.AbstractCodanCMarkerResolution; import org.eclipse.cdt.ui.PreferenceConstants; public class QuickFixSuppressProblemTest extends QuickFixTestCase { + @SuppressWarnings("restriction") @Override protected AbstractCodanCMarkerResolution createQuickFix() { @@ -66,6 +69,17 @@ public class QuickFixSuppressProblemTest extends QuickFixTestCase { assertContainedIn("int func() { } // @suppress(\"No return\")", result); } + //int main() { + // return 0; //Line + //} + public void testMultipleSuppress_549466() throws Exception { + enableProblems(ReturnStyleChecker.ERR_ID, CommentChecker.COMMENT_NO_LINE); + loadcode(getAboveComment(), false); + String result = runQuickFixOneFile(); + assertContainedIn("// @suppress(\"Return with parenthesis\")", result); + assertContainedIn("// @suppress(\"Line comments\")", result); + } + //int func() { } public void testMarkerOnLastLineNoNewline_495842() throws Exception { try (BufferedWriter writer = new BufferedWriter(new FileWriter(loadcode("", false)))) { diff --git a/codan/org.eclipse.cdt.codan.ui/src/org/eclipse/cdt/codan/internal/ui/CodanProblemMarkerResolutionGenerator.java b/codan/org.eclipse.cdt.codan.ui/src/org/eclipse/cdt/codan/internal/ui/CodanProblemMarkerResolutionGenerator.java index 03406b67e03..895b9ffd9ca 100644 --- a/codan/org.eclipse.cdt.codan.ui/src/org/eclipse/cdt/codan/internal/ui/CodanProblemMarkerResolutionGenerator.java +++ b/codan/org.eclipse.cdt.codan.ui/src/org/eclipse/cdt/codan/internal/ui/CodanProblemMarkerResolutionGenerator.java @@ -38,7 +38,7 @@ import org.eclipse.ui.IMarkerResolutionGenerator; public class CodanProblemMarkerResolutionGenerator implements IMarkerResolutionGenerator { private static final String EXTENSION_POINT_NAME = "codanMarkerResolution"; //$NON-NLS-1$ private static final Map> conditionalResolutions = new HashMap<>(); - private static final List universalResolutions = new ArrayList<>(); + private static final List universalResolutions = new ArrayList<>(); private static boolean resolutionsLoaded; static class ConditionalResolution { @@ -123,7 +123,7 @@ public class CodanProblemMarkerResolutionGenerator implements IMarkerResolutionG .forEach(resolutions::add); } - universalResolutions.stream().filter( + universalResolutions.stream().map(e -> instantiateResolution(e)).filter( res -> !(res instanceof ICodanMarkerResolution) || ((ICodanMarkerResolution) res).isApplicable(marker)) .forEach(resolutions::add); @@ -175,7 +175,7 @@ public class CodanProblemMarkerResolutionGenerator implements IMarkerResolutionG } addResolution(id, candidate); } else if (elementName.equals("universalResolution")) { //$NON-NLS-1$ - universalResolutions.add(instantiateResolution(configurationElement)); + universalResolutions.add(configurationElement); } }