diff --git a/build.gradle b/build.gradle index a20f2b4c74..9a905550cf 100644 --- a/build.gradle +++ b/build.gradle @@ -12,6 +12,7 @@ repositories { apply from: rootProject.file('gradle/java-publish.gradle') apply from: rootProject.file('gradle/changelog.gradle') allprojects { + apply from: rootProject.file('gradle/error-prone.gradle') apply from: rootProject.file('gradle/rewrite.gradle') apply from: rootProject.file('gradle/spotless.gradle') } diff --git a/gradle/error-prone.gradle b/gradle/error-prone.gradle new file mode 100644 index 0000000000..029ac4f324 --- /dev/null +++ b/gradle/error-prone.gradle @@ -0,0 +1,30 @@ +import static java.lang.System.getenv + +apply plugin: 'net.ltgt.errorprone' + +dependencies { + errorprone('com.google.errorprone:error_prone_core:2.42.0') + errorprone('tech.picnic.error-prone-support:error-prone-contrib:0.25.0') + constraints { + errorprone('com.google.guava:guava') { + version { + require('33.4.8-jre') + } + because('Older versions use deprecated methods in sun.misc.Unsafe') + // https://github.com/junit-team/junit-framework/pull/5039#discussion_r2414490581 + } + } +} + +tasks.withType(JavaCompile).configureEach { + options.errorprone { + disableAllChecks = true // consider removal to avoid error prone error“s, following convention over configuration. + error('RedundantStringConversion') + if (!getenv().containsKey('CI') && getenv('IN_PLACE')?.toBoolean()) { + errorproneArgs.addAll( + '-XepPatchLocation:IN_PLACE', + '-XepPatchChecks:RedundantStringConversion' + ) + } + } +} diff --git a/lib/src/main/java/com/diffplug/spotless/ForeignExe.java b/lib/src/main/java/com/diffplug/spotless/ForeignExe.java index d205e14039..8697ca68c3 100644 --- a/lib/src/main/java/com/diffplug/spotless/ForeignExe.java +++ b/lib/src/main/java/com/diffplug/spotless/ForeignExe.java @@ -134,7 +134,7 @@ private RuntimeException exceptionFmt(String msgPrimary, ProcessRunner.Result cm errorMsg.append(msgFix); errorMsg.append('\n'); } - errorMsg.append(cmd.toString()); + errorMsg.append(cmd); return new RuntimeException(errorMsg.toString()); } } diff --git a/lib/src/main/java/com/diffplug/spotless/biome/BiomeExecutableDownloader.java b/lib/src/main/java/com/diffplug/spotless/biome/BiomeExecutableDownloader.java index 8a9c6923c0..ae090d3e4a 100644 --- a/lib/src/main/java/com/diffplug/spotless/biome/BiomeExecutableDownloader.java +++ b/lib/src/main/java/com/diffplug/spotless/biome/BiomeExecutableDownloader.java @@ -261,7 +261,7 @@ private Path getChecksumPath(Path file) { var parent = file.getParent(); var base = parent != null ? parent : file; var fileName = file.getFileName(); - var checksumName = fileName != null ? fileName.toString() + ".sha256" : "checksum.sha256"; + var checksumName = fileName != null ? fileName + ".sha256" : "checksum.sha256"; return base.resolve(checksumName); } diff --git a/lib/src/main/java/com/diffplug/spotless/sql/dbeaver/SQLTokensParser.java b/lib/src/main/java/com/diffplug/spotless/sql/dbeaver/SQLTokensParser.java index f80b084c91..de692a5e4e 100644 --- a/lib/src/main/java/com/diffplug/spotless/sql/dbeaver/SQLTokensParser.java +++ b/lib/src/main/java/com/diffplug/spotless/sql/dbeaver/SQLTokensParser.java @@ -186,7 +186,7 @@ else if (contains(singleLineCommentStart, fChar)) { s.append(fChar); } } - return new FormatterToken(TokenType.COMMAND, word + s.toString(), start_pos); + return new FormatterToken(TokenType.COMMAND, word + s, start_pos); } if (sqlDialect.getKeywordType(word) != null) { return new FormatterToken(TokenType.KEYWORD, word, start_pos); diff --git a/settings.gradle b/settings.gradle index 03e841f0ae..5b63b1a24d 100644 --- a/settings.gradle +++ b/settings.gradle @@ -23,6 +23,7 @@ plugins { id 'com.gradle.develocity' version '4.2.1' // https://github.com/equodev/equo-ide/blob/main/plugin-gradle/CHANGELOG.md id 'dev.equo.ide' version '1.7.8' apply false + id 'net.ltgt.errorprone' version '4.3.0' apply false id 'org.openrewrite.rewrite' version '7.17.0' apply false } diff --git a/testlib/src/main/java/com/diffplug/spotless/ReflectionUtil.java b/testlib/src/main/java/com/diffplug/spotless/ReflectionUtil.java index 4d0a340f42..5d393f6e28 100644 --- a/testlib/src/main/java/com/diffplug/spotless/ReflectionUtil.java +++ b/testlib/src/main/java/com/diffplug/spotless/ReflectionUtil.java @@ -37,7 +37,7 @@ public static void dumpAllInfo(String name, Object obj) { public static void dumpMethod(Method method) { System.out.print(Modifier.toString(method.getModifiers())); - System.out.print(" " + method.getReturnType().toString()); + System.out.print(" " + method.getReturnType()); System.out.print(" " + method.getName() + "("); Iterator paramIter = Arrays.asList(method.getParameters()).iterator(); while (paramIter.hasNext()) {