Skip to content

Commit

Permalink
Add a new option "-XepIgnoreSuppressionAnnotations", which will cause…
Browse files Browse the repository at this point in the history
… Error Prone

to act upon code which is suppressed.

This is helpful for evaluating codebases that may have bugs hiding
underneath unjustified @SuppressWarnings.

RELNOTES: New Option: "-XepIgnoreSuppressionAnnotations" which causes Error Prone
to look at code underneath suppression annotations.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=226530233
  • Loading branch information
nick-someone authored and ronshapiro committed Dec 24, 2018
1 parent 76dbea2 commit c54fe69
Show file tree
Hide file tree
Showing 8 changed files with 323 additions and 271 deletions.
Expand Up @@ -51,14 +51,16 @@ public class ErrorProneOptions {
private static final String PATCH_CHECKS_PREFIX = "-XepPatchChecks:";
private static final String PATCH_OUTPUT_LOCATION = "-XepPatchLocation:";
private static final String PATCH_IMPORT_ORDER_PREFIX = "-XepPatchImportOrder:";
private static final String EXCLUDED_PATHS_PREFIX = "-XepExcludedPaths:";

private static final String ERRORS_AS_WARNINGS_FLAG = "-XepAllErrorsAsWarnings";
private static final String ENABLE_ALL_CHECKS = "-XepAllDisabledChecksAsWarnings";
private static final String IGNORE_SUPPRESSION_ANNOTATIONS = "-XepIgnoreSuppressionAnnotations";
private static final String DISABLE_ALL_CHECKS = "-XepDisableAllChecks";
private static final String IGNORE_UNKNOWN_CHECKS_FLAG = "-XepIgnoreUnknownCheckNames";
private static final String DISABLE_WARNINGS_IN_GENERATED_CODE_FLAG =
"-XepDisableWarningsInGeneratedCode";
private static final String COMPILING_TEST_ONLY_CODE = "-XepCompilingTestOnlyCode";
private static final String EXCLUDED_PATHS_PREFIX = "-XepExcludedPaths:";

/** see {@link javax.tools.OptionChecker#isSupportedOption(String)} */
public static int isSupportedOption(String option) {
Expand All @@ -73,6 +75,7 @@ public static int isSupportedOption(String option) {
|| option.equals(ERRORS_AS_WARNINGS_FLAG)
|| option.equals(ENABLE_ALL_CHECKS)
|| option.equals(DISABLE_ALL_CHECKS)
|| option.equals(IGNORE_SUPPRESSION_ANNOTATIONS)
|| option.equals(COMPILING_TEST_ONLY_CODE);
return isSupported ? 0 : -1;
}
Expand Down Expand Up @@ -161,6 +164,7 @@ final PatchingOptions build() {
private final ErrorProneFlags flags;
private final PatchingOptions patchingOptions;
private final Pattern excludedPattern;
private final boolean ignoreSuppressionAnnotations;

private ErrorProneOptions(
ImmutableMap<String, Severity> severityMap,
Expand All @@ -173,7 +177,8 @@ private ErrorProneOptions(
boolean isTestOnlyTarget,
ErrorProneFlags flags,
PatchingOptions patchingOptions,
Pattern excludedPattern) {
Pattern excludedPattern,
boolean ignoreSuppressionAnnotations) {
this.severityMap = severityMap;
this.remainingArgs = remainingArgs;
this.ignoreUnknownChecks = ignoreUnknownChecks;
Expand All @@ -185,6 +190,7 @@ private ErrorProneOptions(
this.flags = flags;
this.patchingOptions = patchingOptions;
this.excludedPattern = excludedPattern;
this.ignoreSuppressionAnnotations = ignoreSuppressionAnnotations;
}

public String[] getRemainingArgs() {
Expand All @@ -211,6 +217,10 @@ public boolean isTestOnlyTarget() {
return isTestOnlyTarget;
}

public boolean isIgnoreSuppressionAnnotations() {
return ignoreSuppressionAnnotations;
}

public ErrorProneFlags getFlags() {
return flags;
}
Expand All @@ -230,6 +240,7 @@ private static class Builder {
private boolean enableAllChecksAsWarnings = false;
private boolean disableAllChecks = false;
private boolean isTestOnlyTarget = false;
private boolean ignoreSuppressionAnnotations = false;
private Map<String, Severity> severityMap = new HashMap<>();
private final ErrorProneFlags.Builder flagsBuilder = ErrorProneFlags.builder();
private final PatchingOptions.Builder patchingOptionsBuilder = PatchingOptions.builder();
Expand Down Expand Up @@ -261,6 +272,10 @@ public void parseFlag(String flag) {
flagsBuilder.parseFlag(flag);
}

public void setIgnoreSuppressionAnnotations(boolean ignoreSuppressionAnnotations) {
this.ignoreSuppressionAnnotations = ignoreSuppressionAnnotations;
}

public void setIgnoreUnknownChecks(boolean ignoreUnknownChecks) {
this.ignoreUnknownChecks = ignoreUnknownChecks;
}
Expand Down Expand Up @@ -310,7 +325,8 @@ public ErrorProneOptions build(ImmutableList<String> remainingArgs) {
isTestOnlyTarget,
flagsBuilder.build(),
patchingOptionsBuilder.build(),
excludedPattern);
excludedPattern,
ignoreSuppressionAnnotations);
}

public void setExcludedPattern(Pattern excludedPattern) {
Expand Down Expand Up @@ -346,6 +362,9 @@ public static ErrorProneOptions processArgs(Iterable<String> args) {
Builder builder = new Builder();
for (String arg : args) {
switch (arg) {
case IGNORE_SUPPRESSION_ANNOTATIONS:
builder.setIgnoreSuppressionAnnotations(true);
break;
case IGNORE_UNKNOWN_CHECKS_FLAG:
builder.setIgnoreUnknownChecks(true);
break;
Expand Down
200 changes: 0 additions & 200 deletions check_api/src/main/java/com/google/errorprone/SuppressionHelper.java

This file was deleted.

0 comments on commit c54fe69

Please sign in to comment.