From 1ca404d6749f92d0f51ae49a1ce5647aa44b3e4b Mon Sep 17 00:00:00 2001 From: Patrick Koenig Date: Tue, 2 Jun 2020 14:05:54 -0700 Subject: [PATCH 1/3] Don't include SUGGESTION checks in default checks --- .../palantir/baseline/errorprone/LambdaMethodReference.java | 3 ++- .../baseline/errorprone/PreferBuiltInConcurrentKeySet.java | 3 ++- .../baseline/errorprone/RedundantMethodReference.java | 3 ++- .../com/palantir/baseline/errorprone/RedundantModifier.java | 3 ++- .../java/com/palantir/baseline/errorprone/StreamOfEmpty.java | 3 ++- .../baseline/extensions/BaselineErrorProneExtension.java | 5 +++++ 6 files changed, 15 insertions(+), 5 deletions(-) diff --git a/baseline-error-prone/src/main/java/com/palantir/baseline/errorprone/LambdaMethodReference.java b/baseline-error-prone/src/main/java/com/palantir/baseline/errorprone/LambdaMethodReference.java index 2b6809a25..188a51a00 100644 --- a/baseline-error-prone/src/main/java/com/palantir/baseline/errorprone/LambdaMethodReference.java +++ b/baseline-error-prone/src/main/java/com/palantir/baseline/errorprone/LambdaMethodReference.java @@ -20,6 +20,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; import com.google.errorprone.BugPattern; +import com.google.errorprone.BugPattern.SeverityLevel; import com.google.errorprone.VisitorState; import com.google.errorprone.bugpatterns.BugChecker; import com.google.errorprone.fixes.SuggestedFix; @@ -53,7 +54,7 @@ link = "https://github.com/palantir/gradle-baseline#baseline-error-prone-checks", linkType = BugPattern.LinkType.CUSTOM, providesFix = BugPattern.ProvidesFix.REQUIRES_HUMAN_ATTENTION, - severity = BugPattern.SeverityLevel.SUGGESTION, + severity = SeverityLevel.WARNING, summary = "Lambda should be a method reference") @SuppressWarnings("checkstyle:CyclomaticComplexity") public final class LambdaMethodReference extends BugChecker implements BugChecker.LambdaExpressionTreeMatcher { diff --git a/baseline-error-prone/src/main/java/com/palantir/baseline/errorprone/PreferBuiltInConcurrentKeySet.java b/baseline-error-prone/src/main/java/com/palantir/baseline/errorprone/PreferBuiltInConcurrentKeySet.java index a5538d614..fce7555cf 100644 --- a/baseline-error-prone/src/main/java/com/palantir/baseline/errorprone/PreferBuiltInConcurrentKeySet.java +++ b/baseline-error-prone/src/main/java/com/palantir/baseline/errorprone/PreferBuiltInConcurrentKeySet.java @@ -18,6 +18,7 @@ import com.google.auto.service.AutoService; import com.google.errorprone.BugPattern; +import com.google.errorprone.BugPattern.SeverityLevel; import com.google.errorprone.VisitorState; import com.google.errorprone.bugpatterns.BugChecker; import com.google.errorprone.fixes.SuggestedFix; @@ -34,7 +35,7 @@ link = "https://github.com/palantir/gradle-baseline#baseline-error-prone-checks", linkType = BugPattern.LinkType.CUSTOM, providesFix = BugPattern.ProvidesFix.REQUIRES_HUMAN_ATTENTION, - severity = BugPattern.SeverityLevel.SUGGESTION, + severity = SeverityLevel.WARNING, summary = "Prefer Java's built-in Concurrent Set implementation over Guava's ConcurrentHashSet, as it does " + "the same thing with less indirection and doesn't rely on Guava") public final class PreferBuiltInConcurrentKeySet extends BugChecker implements BugChecker.MethodInvocationTreeMatcher { diff --git a/baseline-error-prone/src/main/java/com/palantir/baseline/errorprone/RedundantMethodReference.java b/baseline-error-prone/src/main/java/com/palantir/baseline/errorprone/RedundantMethodReference.java index 1750e2d2d..39537b13b 100644 --- a/baseline-error-prone/src/main/java/com/palantir/baseline/errorprone/RedundantMethodReference.java +++ b/baseline-error-prone/src/main/java/com/palantir/baseline/errorprone/RedundantMethodReference.java @@ -18,6 +18,7 @@ import com.google.auto.service.AutoService; import com.google.errorprone.BugPattern; +import com.google.errorprone.BugPattern.SeverityLevel; import com.google.errorprone.VisitorState; import com.google.errorprone.bugpatterns.BugChecker; import com.google.errorprone.fixes.SuggestedFix; @@ -35,7 +36,7 @@ name = "RedundantMethodReference", link = "https://github.com/palantir/gradle-baseline#baseline-error-prone-checks", linkType = BugPattern.LinkType.CUSTOM, - severity = BugPattern.SeverityLevel.SUGGESTION, + severity = SeverityLevel.WARNING, summary = "Redundant method reference to the same type") public final class RedundantMethodReference extends BugChecker implements BugChecker.MemberReferenceTreeMatcher { diff --git a/baseline-error-prone/src/main/java/com/palantir/baseline/errorprone/RedundantModifier.java b/baseline-error-prone/src/main/java/com/palantir/baseline/errorprone/RedundantModifier.java index 9c94d40ff..a7f1dde6d 100644 --- a/baseline-error-prone/src/main/java/com/palantir/baseline/errorprone/RedundantModifier.java +++ b/baseline-error-prone/src/main/java/com/palantir/baseline/errorprone/RedundantModifier.java @@ -18,6 +18,7 @@ import com.google.auto.service.AutoService; import com.google.errorprone.BugPattern; +import com.google.errorprone.BugPattern.SeverityLevel; import com.google.errorprone.VisitorState; import com.google.errorprone.bugpatterns.BugChecker; import com.google.errorprone.fixes.SuggestedFixes; @@ -41,7 +42,7 @@ link = "https://github.com/palantir/gradle-baseline#baseline-error-prone-checks", linkType = BugPattern.LinkType.CUSTOM, providesFix = BugPattern.ProvidesFix.REQUIRES_HUMAN_ATTENTION, - severity = BugPattern.SeverityLevel.SUGGESTION, + severity = SeverityLevel.WARNING, summary = "Avoid using redundant modifiers") public final class RedundantModifier extends BugChecker implements BugChecker.ClassTreeMatcher, BugChecker.MethodTreeMatcher, BugChecker.VariableTreeMatcher { diff --git a/baseline-error-prone/src/main/java/com/palantir/baseline/errorprone/StreamOfEmpty.java b/baseline-error-prone/src/main/java/com/palantir/baseline/errorprone/StreamOfEmpty.java index 23da8820f..50500c7a0 100644 --- a/baseline-error-prone/src/main/java/com/palantir/baseline/errorprone/StreamOfEmpty.java +++ b/baseline-error-prone/src/main/java/com/palantir/baseline/errorprone/StreamOfEmpty.java @@ -18,6 +18,7 @@ import com.google.auto.service.AutoService; import com.google.errorprone.BugPattern; +import com.google.errorprone.BugPattern.SeverityLevel; import com.google.errorprone.VisitorState; import com.google.errorprone.bugpatterns.BugChecker; import com.google.errorprone.fixes.SuggestedFixes; @@ -33,7 +34,7 @@ name = "StreamOfEmpty", link = "https://github.com/palantir/gradle-baseline#baseline-error-prone-checks", linkType = BugPattern.LinkType.CUSTOM, - severity = BugPattern.SeverityLevel.SUGGESTION, + severity = SeverityLevel.WARNING, summary = "Stream.of() should be replaced with Stream.empty() to avoid unnecessary varargs allocation.") public final class StreamOfEmpty extends BugChecker implements BugChecker.MethodInvocationTreeMatcher { diff --git a/gradle-baseline-java/src/main/groovy/com/palantir/baseline/extensions/BaselineErrorProneExtension.java b/gradle-baseline-java/src/main/groovy/com/palantir/baseline/extensions/BaselineErrorProneExtension.java index 6e0a61ffc..cf4b1dab2 100644 --- a/gradle-baseline-java/src/main/groovy/com/palantir/baseline/extensions/BaselineErrorProneExtension.java +++ b/gradle-baseline-java/src/main/groovy/com/palantir/baseline/extensions/BaselineErrorProneExtension.java @@ -21,6 +21,11 @@ import org.gradle.api.provider.ListProperty; public class BaselineErrorProneExtension { + + /* + * Do not add SUGGESTION checks here. Instead either increase the severity to WARNING or do not apply them by + * default. + */ private static final ImmutableList DEFAULT_PATCH_CHECKS = ImmutableList.of( // Baseline checks "BracesRequired", From 72d40e2e64f2307028361862b3ff64b33d43048f Mon Sep 17 00:00:00 2001 From: Patrick Koenig Date: Tue, 2 Jun 2020 15:24:22 -0700 Subject: [PATCH 2/3] Comments --- .../java/com/palantir/baseline/errorprone/StreamOfEmpty.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/baseline-error-prone/src/main/java/com/palantir/baseline/errorprone/StreamOfEmpty.java b/baseline-error-prone/src/main/java/com/palantir/baseline/errorprone/StreamOfEmpty.java index 50500c7a0..8aaebfc5f 100644 --- a/baseline-error-prone/src/main/java/com/palantir/baseline/errorprone/StreamOfEmpty.java +++ b/baseline-error-prone/src/main/java/com/palantir/baseline/errorprone/StreamOfEmpty.java @@ -34,7 +34,7 @@ name = "StreamOfEmpty", link = "https://github.com/palantir/gradle-baseline#baseline-error-prone-checks", linkType = BugPattern.LinkType.CUSTOM, - severity = SeverityLevel.WARNING, + severity = SeverityLevel.ERROR, summary = "Stream.of() should be replaced with Stream.empty() to avoid unnecessary varargs allocation.") public final class StreamOfEmpty extends BugChecker implements BugChecker.MethodInvocationTreeMatcher { From 60f9efc2f4509e1c4f9b17dc27e49bf58b002a33 Mon Sep 17 00:00:00 2001 From: Patrick Koenig Date: Tue, 2 Jun 2020 22:24:22 +0000 Subject: [PATCH 3/3] Add generated changelog entries --- changelog/@unreleased/pr-1380.v2.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 changelog/@unreleased/pr-1380.v2.yml diff --git a/changelog/@unreleased/pr-1380.v2.yml b/changelog/@unreleased/pr-1380.v2.yml new file mode 100644 index 000000000..d35e02070 --- /dev/null +++ b/changelog/@unreleased/pr-1380.v2.yml @@ -0,0 +1,6 @@ +type: improvement +improvement: + description: The `baseline-error-prone` plugin no longer applies `SUGGESTION` checks + by default. + links: + - https://github.com/palantir/gradle-baseline/pull/1380