RFR: 8350212: Track source end positions of declarations that support @SuppressWarnings [v6]

Archie Cobbs acobbs at openjdk.org
Fri May 9 15:03:13 UTC 2025


> This PR is a sub-task split off from [JDK-8224228](https://bugs.openjdk.org/browse/JDK-8224228), which seeks to add `@SuppressWarnings` support for lexical features.
> 
> Lexical features don't know about classes, members or symbols, so their source file positions must be matched to the source file character offset range of the innermost containing `JCModuleDecl`, `JCPackageDecl`, `JCClassDecl`, `JCMethodDecl`, or `JCVariableDecl`. That means we need the end positions of all such declarations to be available.
> 
> The parser doesn't normally store lexical end positions unless explicitly requested, and we don't want to mandate it for performance reasons.
> 
> Instead, we can just add an `int endPos` field to these five AST nodes. This field can be populated as part of the normal parsing of these node types, which already supports the (optional) tracking of end positions.

Archie Cobbs has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains six commits:

 - Merge branch 'master' into JDK-8350212 to fix conflict.
 - Update copyrights.
 - Refactoring/cleanup for handling of ending positions.
 - Add missing variable decl end position.
 - Add end position for variables coming from variableDeclaratorId().
 - Track source end positions of declarations that support @SuppressWarnings.

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

Changes: https://git.openjdk.org/jdk/pull/23669/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=23669&range=05
  Stats: 401 lines in 13 files changed: 203 ins; 88 del; 110 mod
  Patch: https://git.openjdk.org/jdk/pull/23669.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/23669/head:pull/23669

PR: https://git.openjdk.org/jdk/pull/23669


More information about the compiler-dev mailing list