Skip to content

Commit a9b6516

Browse files
committed
Add support for -XepAllSuggestionsAsWarnings
That flag was added in Error Prone 2.20.0 but somehow flew under my radar. There's also an -XepCompilingPubliclyVisibleCode that was added in the version, but nobody seems to be using it; it might be specific to Google's own internal checks about what's private code and what's public in their monorepo.
1 parent e60edb1 commit a9b6516

File tree

4 files changed

+14
-1
lines changed

4 files changed

+14
-1
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,7 @@ _Please note that all properties are [lazy](https://docs.gradle.org/current/user
270270
| `disableAllChecks` | Disable all Error Prone checks; maps to `-XepDisableAllChecks`. This will be the first argument, so checks can then be re-enabled on a case-by-case basis. Defaults to `false`.
271271
| `disableAllWarnings` | Maps to `-XepDisableAllWarnings` (since ErrorProne 2.4.0). Defaults to `false`.
272272
| `allErrorsAsWarnings` | Maps to `-XepAllErrorsAsWarnings`. Defaults to `false`.
273+
| `allSuggestionsAsWarnings` | (since ErrorProne 2.20.0) Maps to `-XepAllSuggestionsAsWarnings`. Defaults to `false`.
273274
| `allDisabledChecksAsWarnings` | Enables all Error Prone checks, checks that are disabled by default are enabled as warnings; maps to `-XepDisabledChecksAsWarnings`. Defaults to `false`.
274275
| `disableWarningsInGeneratedCode` | Disables warnings in classes annotated with `javax.annotation.processing.Generated` or `@javax.annotation.Generated`; maps to `-XepDisableWarningsInGeneratedCode`. Defaults to `false`.
275276
| `ignoreUnknownCheckNames` | Maps to `-XepIgnoreUnknownCheckNames`. Defaults to `false`.
@@ -296,5 +297,5 @@ _Please note that all properties are [lazy](https://docs.gradle.org/current/user
296297
| `option(optionName)` | Enables a boolean check option. Equivalent to `option(checkName, true)`.
297298
| `option(optionName, value)` | Adds a check option with a given value. Value can be a boolean or a string, or a provider of string. Equivalent to `checkOptions.put(name, value)`.
298299

299-
A check severity can take values: `DEFAULT`, `OFF`, `WARN`, or `ERROR`.
300+
A check severity can take values: `DEFAULT`, `OFF`, `WARN`, or `ERROR`.
300301
Note that the `net.ltgt.gradle.errorprone.CheckSeverity` needs to be `import`ed into your build scripts (see examples above).

src/integrationTest/kotlin/net/ltgt/gradle/errorprone/GroovyDslIntegrationTest.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ class GroovyDslIntegrationTest {
9393
disableAllChecks = false
9494
disableAllWarnings = false
9595
allErrorsAsWarnings = false
96+
allSuggestionsAsWarnings = false
9697
allDisabledChecksAsWarnings = false
9798
disableWarningsInGeneratedCode = false
9899
ignoreUnknownCheckNames = false

src/main/kotlin/net/ltgt/gradle/errorprone/ErrorProneOptions.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,13 @@ open class ErrorProneOptions constructor(
5151
*/
5252
@get:Input val allErrorsAsWarnings = objectFactory.property<Boolean>().convention(false)
5353

54+
/**
55+
* Turn all Error Prone suggestions into warnings; maps to `-XepAllSuggestionsAsWarnings`.
56+
*
57+
* This will be among the first arguments, so checks can then be demoted back to suggestions on a case-by-case basis.
58+
*/
59+
@get:Input val allSuggestionsAsWarnings = objectFactory.property<Boolean>().convention(false)
60+
5461
/**
5562
* Enables all Error Prone checks, checks that are disabled by default are enabled as warnings; maps to `-XepAllDisabledChecksAsWarnings`.
5663
*
@@ -251,6 +258,7 @@ open class ErrorProneOptions constructor(
251258
booleanOption("-XepDisableAllChecks", disableAllChecks),
252259
booleanOption("-XepDisableAllWarnings", disableAllWarnings),
253260
booleanOption("-XepAllErrorsAsWarnings", allErrorsAsWarnings),
261+
booleanOption("-XepAllSuggestionsAsWarnings", allSuggestionsAsWarnings),
254262
booleanOption("-XepAllDisabledChecksAsWarnings", allDisabledChecksAsWarnings),
255263
booleanOption("-XepDisableWarningsInGeneratedCode", disableWarningsInGeneratedCode),
256264
booleanOption("-XepIgnoreUnknownCheckNames", ignoreUnknownCheckNames),

src/test/kotlin/net/ltgt/gradle/errorprone/ErrorProneOptionsTest.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ class ErrorProneOptionsTest {
5656
doTestOptions { disableAllChecks.set(true) }
5757
doTestOptions { disableAllWarnings.set(true) }
5858
doTestOptions { allErrorsAsWarnings.set(true) }
59+
doTestOptions { allSuggestionsAsWarnings.set(true) }
5960
doTestOptions { allDisabledChecksAsWarnings.set(true) }
6061
doTestOptions { disableWarningsInGeneratedCode.set(true) }
6162
doTestOptions { ignoreUnknownCheckNames.set(true) }
@@ -79,6 +80,7 @@ class ErrorProneOptionsTest {
7980
disableAllChecks.set(true)
8081
disableAllWarnings.set(true)
8182
allErrorsAsWarnings.set(true)
83+
allSuggestionsAsWarnings.set(true)
8284
allDisabledChecksAsWarnings.set(true)
8385
disableWarningsInGeneratedCode.set(true)
8486
ignoreUnknownCheckNames.set(true)
@@ -240,6 +242,7 @@ class ErrorProneOptionsTest {
240242
assertThat(parsedOptions.isDisableAllChecks).isEqualTo(options.disableAllChecks.get())
241243
assertThat(parsedOptions.isDisableAllWarnings).isEqualTo(options.disableAllWarnings.get())
242244
assertThat(parsedOptions.isDropErrorsToWarnings).isEqualTo(options.allErrorsAsWarnings.get())
245+
assertThat(parsedOptions.isSuggestionsAsWarnings).isEqualTo(options.allSuggestionsAsWarnings.get())
243246
assertThat(parsedOptions.isEnableAllChecksAsWarnings).isEqualTo(options.allDisabledChecksAsWarnings.get())
244247
assertThat(parsedOptions.disableWarningsInGeneratedCode()).isEqualTo(options.disableWarningsInGeneratedCode.get())
245248
assertThat(parsedOptions.ignoreUnknownChecks()).isEqualTo(options.ignoreUnknownCheckNames.get())

0 commit comments

Comments
 (0)