RFR: 8224228: No way to locally suppress lint warnings in parser/tokenizer or preview features [v14]

Maurizio Cimadamore mcimadamore at openjdk.org
Fri Feb 28 18:30:54 UTC 2025


On Fri, 28 Feb 2025 17:27:33 GMT, Archie Cobbs <acobbs at openjdk.org> wrote:

>> This PR updates the `DeferredLintHandler` so that deferred warnings can be registered during parsing, before any `JCTree` nodes have been created, and it uses this new capability to update the `"preview"` and `"text-blocks"` Lint warnings so that they can be suppressed via `@SuppressWarnings` annotations. More details are provided in additional comments.
>> 
>> Note: This PR depends on (i.e., includes and extends) these other "cleanup" PR's:
>> * #23167
>> * #23281
>> * #23400
>> * #23730
>
> Archie Cobbs has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Refactor to map positions to declarations all within the parser.

Some interesting (and extreme) cases:


class Test1 {
    @interface A {
        String value();
    }

    @SuppressWarnings("text-blocks")
    @A("""
                trailing space here:\u0020
                """)
    void m() { }
}


Or, even


class Test2 {
       @SuppressWarnings("""
                                           text-blocks\u0020
       """)
    void m() { }
}


I'm not saying we should handle them -- more pointing out that, perhaps, trying to come up with the "perfect"/"most general" scheme here might be very difficult (if at all possible).

-------------

PR Comment: https://git.openjdk.org/jdk/pull/23237#issuecomment-2691295561


More information about the compiler-dev mailing list