Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

@SuppressWarnings("InlineFormatString") doesn't work #1650

Closed
anthonyvdotbe opened this issue May 31, 2020 · 2 comments · Fixed by #1657
Closed

@SuppressWarnings("InlineFormatString") doesn't work #1650

anthonyvdotbe opened this issue May 31, 2020 · 2 comments · Fixed by #1657
Assignees

Comments

@anthonyvdotbe
Copy link
Contributor

Description of the problem / feature request:

I'm unable to suppress InlineFormatString, neither by annotating the constant, nor by annotating the method that uses the constant.

Bugs: what's the simplest, easiest way to reproduce this bug? Please provide a minimal example if possible.

class Foo {

    @SuppressWarnings("InlineFormatString")
    private static final String FMT = "%s";

    @SuppressWarnings("InlineFormatString")
    String foo() {
        return String.format(FMT, "bar");
    }

}

What version of Error Prone are you using?

2.4.0

Have you found anything relevant by searching the web?

No.

@cushon cushon self-assigned this May 31, 2020
@cushon
Copy link
Collaborator

cushon commented May 31, 2020

This was an oversight, I agree @SuppressWarnings("InlineFormatString") should work if the constant or an enclosing scope is annotated.

Out of curiosity, was there a particular real-world example where this suggestion wasn't useful? If you disagree with it in general, you can also disable the check with -Xep:InlineFormatString:OFF.

@anthonyvdotbe
Copy link
Contributor Author

anthonyvdotbe commented Jun 1, 2020

In this case, I had relatively large text blocks (think: templates) which contained just 1/2 arguments, and the format strings were used like:

var converter = builder
.with(Foo.class, o -> String.format(FMT_FOO, v.apply(o.content().text())))
.with(Bar.class, (v, o) -> String.format(FMT_BAR, v.apply(o.content())))
...
.with(Baz.class, (v, o) -> String.format(FMT_BAZ, v.apply(o.content())))
.build();

So inlining the format Strings would make the code look messy, and I felt that refactoring the code to use separate methods wasn't worth the effort. I don't disagree with it in general, though.

netdpb pushed a commit that referenced this issue Jun 1, 2020
Fixes #1650

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=314056510
netdpb pushed a commit that referenced this issue Jun 1, 2020
Fixes #1650

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=314056510
copybara-service bot pushed a commit that referenced this issue Jan 5, 2023
It's nice to be able to suppress this check, e.g., while you're initially prototyping a checker.  I based my fix on the fix for #1650; hope it's the right approach.

Fixes #3690

FUTURE_COPYBARA_INTEGRATE_REVIEW=#3690 from msridhar:make-memoizeconstantvisitorstatelookups-suppressible 0adb67b
PiperOrigin-RevId: 499982745
copybara-service bot pushed a commit that referenced this issue Jan 5, 2023
It's nice to be able to suppress this check, e.g., while you're initially prototyping a checker.  I based my fix on the fix for #1650; hope it's the right approach.

Fixes #3690

FUTURE_COPYBARA_INTEGRATE_REVIEW=#3690 from msridhar:make-memoizeconstantvisitorstatelookups-suppressible 0adb67b
PiperOrigin-RevId: 499982745
copybara-service bot pushed a commit that referenced this issue Jan 6, 2023
It's nice to be able to suppress this check, e.g., while you're initially prototyping a checker.  I based my fix on the fix for #1650; hope it's the right approach.

Fixes #3690

COPYBARA_INTEGRATE_REVIEW=#3690 from msridhar:make-memoizeconstantvisitorstatelookups-suppressible 0adb67b
PiperOrigin-RevId: 500002923
benkard pushed a commit to benkard/jgvariant that referenced this issue Jan 14, 2023
This MR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [com.google.errorprone:error_prone_core](https://errorprone.info) ([source](https://github.com/google/error-prone)) |  | minor | `2.16` -> `2.18.0` |
| [com.google.errorprone:error_prone_annotations](https://errorprone.info) ([source](https://github.com/google/error-prone)) | compile | minor | `2.16` -> `2.18.0` |
| [org.apache.maven.plugins:maven-failsafe-plugin](https://maven.apache.org/surefire/) | build | patch | `3.0.0-M7` -> `3.0.0-M8` |
| [org.apache.maven.plugins:maven-surefire-plugin](https://maven.apache.org/surefire/) | build | patch | `3.0.0-M7` -> `3.0.0-M8` |

---

### Release Notes

<details>
<summary>google/error-prone</summary>

### [`v2.18.0`](https://github.com/google/error-prone/releases/tag/v2.18.0): Error Prone 2.18.0

[Compare Source](google/error-prone@v2.17.0...v2.18.0)

New Checkers:

-   [`InjectOnBugCheckers`](https://errorprone.info/bugpattern/InjectOnBugCheckers)
-   [`LabelledBreakTarget`](https://errorprone.info/bugpattern/LabelledBreakTarget)
-   [`UnusedLabel`](https://errorprone.info/bugpattern/UnusedLabel)
-   [`YodaCondition`](https://errorprone.info/bugpattern/YodaCondition)

Fixes issues: [#&#8203;1650](google/error-prone#1650), [#&#8203;2706](google/error-prone#2706), [#&#8203;3404](google/error-prone#3404), [#&#8203;3493](google/error-prone#3493), [#&#8203;3504](google/error-prone#3504), [#&#8203;3519](google/error-prone#3519), [#&#8203;3579](google/error-prone#3579), [#&#8203;3610](google/error-prone#3610), [#&#8203;3632](google/error-prone#3632), [#&#8203;3638](google/error-prone#3638), [#&#8203;3645](google/error-prone#3645), [#&#8203;3646](google/error-prone#3646), [#&#8203;3652](google/error-prone#3652), [#&#8203;3690](google/error-prone#3690)

**Full Changelog**: google/error-prone@v2.17.0...v2.18.0

### [`v2.17.0`](https://github.com/google/error-prone/releases/tag/v2.17.0): Error Prone 2.17.0

[Compare Source](google/error-prone@v2.16...v2.17.0)

New Checkers:

-   [`AvoidObjectArrays`](https://errorprone.info/bugpattern/AvoidObjectArrays)
-   [`Finalize`](https://errorprone.info/bugpattern/Finalize)
-   [`IgnoredPureGetter`](https://errorprone.info/bugpattern/IgnoredPureGetter)
-   [`ImpossibleNullComparison`](https://errorprone.info/bugpattern/ProtoFieldNullComparison)
-   [`MathAbsoluteNegative`](https://errorprone.info/bugpattern/MathAbsoluteNegative)
-   [`NewFileSystem`](https://errorprone.info/bugpattern/NewFileSystem)
-   [`StatementSwitchToExpressionSwitch`](https://errorprone.info/bugpattern/StatementSwitchToExpressionSwitch)
-   [`UnqualifiedYield`](https://errorprone.info/bugpattern/UnqualifiedYield)

Fixed issues: [#&#8203;2321](google/error-prone#2321), [#&#8203;3144](google/error-prone#3144), [#&#8203;3297](google/error-prone#3297), [#&#8203;3428](google/error-prone#3428), [#&#8203;3437](google/error-prone#3437), [#&#8203;3462](google/error-prone#3462), [#&#8203;3482](google/error-prone#3482), [#&#8203;3494](google/error-prone#3494)

**Full Changelog**: google/error-prone@v2.16...v2.17.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever MR is behind base branch, or you tick the rebase/retry checkbox.

👻 **Immortal**: This MR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4yNC4wIiwidXBkYXRlZEluVmVyIjoiMzQuMjQuMCJ9-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants