Upgrade to Error Prone 2.6.0

This commit is contained in:
Stephan Schroevers
2021-03-28 15:06:34 +02:00
parent c0bfac7b4c
commit 567c81a93d
4 changed files with 19 additions and 39 deletions

View File

@@ -2,7 +2,7 @@ package tech.picnic.errorprone.bugpatterns;
import static com.google.errorprone.matchers.Matchers.allOf;
import static com.google.errorprone.matchers.Matchers.anyOf;
import static com.google.errorprone.matchers.Matchers.isNonNull;
import static com.google.errorprone.matchers.Matchers.isNonNullUsingDataflow;
import static com.google.errorprone.matchers.Matchers.isSameType;
import static com.google.errorprone.matchers.Matchers.isSubtypeOf;
import static com.google.errorprone.matchers.Matchers.not;
@@ -64,7 +64,8 @@ public final class RedundantStringConversionCheck extends BugChecker
private static final Matcher<ExpressionTree> MARKER = isSubtypeOf("org.slf4j.Marker");
private static final Matcher<ExpressionTree> STRING = isSameType(String.class);
private static final Matcher<ExpressionTree> THROWABLE = isSubtypeOf(Throwable.class);
private static final Matcher<ExpressionTree> NON_NULL_STRING = allOf(STRING, isNonNull());
private static final Matcher<ExpressionTree> NON_NULL_STRING =
allOf(STRING, isNonNullUsingDataflow());
private static final Matcher<ExpressionTree> NOT_FORMATTABLE =
not(isSubtypeOf(Formattable.class));
private static final Matcher<ExpressionTree> WELL_KNOWN_STRING_CONVERSION_METHODS =

View File

@@ -6,6 +6,7 @@ import static java.util.function.Predicate.not;
import com.google.auto.service.AutoService;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Suppliers;
import com.google.common.collect.ImmutableCollection;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableListMultimap;
@@ -43,6 +44,7 @@ import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Objects;
import java.util.Optional;
import java.util.function.Supplier;
import java.util.regex.Pattern;
import java.util.stream.Stream;
@@ -66,6 +68,10 @@ public final class RefasterCheck extends BugChecker implements CompilationUnitTr
private static final String REFASTER_TEMPLATE_SUFFIX = ".refaster";
private static final String INCLUDED_TEMPLATES_PATTERN_FLAG = "Refaster:NamePattern";
@VisibleForTesting
static final Supplier<ImmutableListMultimap<String, CodeTransformer>> ALL_CODE_TRANSFORMERS =
Suppliers.memoize(RefasterCheck::loadAllCodeTransformers);
private final CodeTransformer codeTransformer;
/** Instantiates the default {@link RefasterCheck}. */
@@ -79,13 +85,7 @@ public final class RefasterCheck extends BugChecker implements CompilationUnitTr
* @param flags Any provided command line flags.
*/
public RefasterCheck(ErrorProneFlags flags) {
codeTransformer = createCompositeCodeTransformer(flags, loadAllCodeTransformers());
}
@VisibleForTesting
RefasterCheck(
ErrorProneFlags flags, ImmutableListMultimap<String, CodeTransformer> allTransformers) {
codeTransformer = createCompositeCodeTransformer(flags, allTransformers);
codeTransformer = createCompositeCodeTransformer(flags);
}
@Override
@@ -152,8 +152,8 @@ public final class RefasterCheck extends BugChecker implements CompilationUnitTr
return description.fixes.stream().flatMap(fix -> fix.getReplacements(endPositions).stream());
}
private static CodeTransformer createCompositeCodeTransformer(
ErrorProneFlags flags, ImmutableListMultimap<String, CodeTransformer> allTransformers) {
private static CodeTransformer createCompositeCodeTransformer(ErrorProneFlags flags) {
ImmutableListMultimap<String, CodeTransformer> allTransformers = ALL_CODE_TRANSFORMERS.get();
return CompositeCodeTransformer.compose(
flags
.get(INCLUDED_TEMPLATES_PATTERN_FLAG)
@@ -170,8 +170,7 @@ public final class RefasterCheck extends BugChecker implements CompilationUnitTr
.collect(toImmutableList());
}
@VisibleForTesting
static ImmutableListMultimap<String, CodeTransformer> loadAllCodeTransformers() {
private static ImmutableListMultimap<String, CodeTransformer> loadAllCodeTransformers() {
ImmutableListMultimap.Builder<String, CodeTransformer> transformers =
ImmutableListMultimap.builder();

View File

@@ -6,14 +6,10 @@ import static java.util.function.Predicate.not;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatCode;
import com.google.common.collect.ImmutableListMultimap;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.ImmutableSetMultimap;
import com.google.errorprone.BugCheckerRefactoringTestHelper;
import com.google.errorprone.BugCheckerRefactoringTestHelper.TestMode;
import com.google.errorprone.CodeTransformer;
import com.google.errorprone.ErrorProneFlags;
import java.util.regex.Pattern;
import java.util.stream.Stream;
import org.junit.jupiter.api.Test;
@@ -77,9 +73,6 @@ public final class RefasterCheckTest {
*/
private static final Pattern TEMPLATE_FQCN_TRIM_FOR_GROUP_NAME =
Pattern.compile(".*\\.|Templates\\$.*");
/** All Refaster templates on the classpath, indexed by their name. */
private static final ImmutableListMultimap<String, CodeTransformer> ALL_CODE_TRANSFORMERS =
RefasterCheck.loadAllCodeTransformers();
/**
* A mapping from template group names to associated template names.
*
@@ -87,7 +80,7 @@ public final class RefasterCheckTest {
* templates, while the keys correspond to the associated top-level "aggregator" classes.
*/
private static final ImmutableSetMultimap<String, String> TEMPLATES_BY_GROUP =
indexTemplateNamesByGroup(ALL_CODE_TRANSFORMERS.keySet());
indexTemplateNamesByGroup(RefasterCheck.ALL_CODE_TRANSFORMERS.get().keySet());
/** Returns every known template group name as a parameterized test argument. */
@SuppressWarnings("UnusedMethod" /* Used as a `@MethodSource`. */)
@@ -171,10 +164,7 @@ public final class RefasterCheckTest {
private BugCheckerRefactoringTestHelper createRestrictedRefactoringTestHelper(
String namePattern) {
return BugCheckerRefactoringTestHelper.newInstance(
new RefasterCheck(
ErrorProneFlags.fromMap(ImmutableMap.of("Refaster:NamePattern", namePattern)),
ALL_CODE_TRANSFORMERS),
getClass());
return BugCheckerRefactoringTestHelper.newInstance(RefasterCheck.class, getClass())
.setArgs("-XepOpt:Refaster:NamePattern=" + namePattern);
}
}

16
pom.xml
View File

@@ -109,10 +109,9 @@
one place. We use these to keep dependencies in sync. Version numbers
that need to be referenced only once should *not* be listed here. -->
<version.auto-service>1.0</version.auto-service>
<version.error-prone>2.5.1</version.error-prone>
<version.error-prone>2.6.0</version.error-prone>
<version.error-prone-slf4j>0.1.4</version.error-prone-slf4j>
<version.findbugs-format-string>3.0.0</version.findbugs-format-string>
<version.guava>30.1.1-jre</version.guava>
<version.guava-beta-checker>1.0</version.guava-beta-checker>
<version.jdk>11</version.jdk>
<version.maven>3.6.3</version.maven>
@@ -203,7 +202,7 @@
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava-bom</artifactId>
<version>${version.guava}</version>
<version>30.1.1-jre</version>
<type>pom</type>
<scope>import</scope>
</dependency>
@@ -1090,7 +1089,7 @@
<id>error-prone-fork</id>
<properties>
<groupId.error-prone>com.github.PicnicSupermarket.error-prone</groupId.error-prone>
<version.error-prone>v2.5.1-picnic-1</version.error-prone>
<version.error-prone>v2.6.0-picnic-1</version.error-prone>
</properties>
<dependencyManagement>
<!-- Even when we directly depend on the Picnic Error Prone
@@ -1326,15 +1325,6 @@
<artifactId>jFormatString</artifactId>
<version>${version.findbugs-format-string}</version>
</path>
<!-- XXX: Error Prone relies on a more recent
version of Guava than pulled in by Google Auto
Service. Drop this dependency after the next
Auto Service upgrade. -->
<path>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${version.guava}</version>
</path>
<path>
<groupId>com.google.guava</groupId>
<artifactId>guava-beta-checker</artifactId>