> This change adds a field to `JCTree` to store end positions, instead of using 
> a separate `EndPosTable` map. See also [this compile-dev@ 
> thread](https://mail.openjdk.org/pipermail/compiler-dev/2025-November/032254.html).
> 
> I performed the refactoring in stages, preserving existing semantics at each 
> step.
> 
> There are two known places where this changes existing behaviour that are 
> reflected in changes to tests:
> 
> * `test/langtools/tools/javac/api/TestJavacTask_Lock.java` - this test 
> asserts that calling `JavacTask#parse` first and then calling `#call` or 
> `#parse` second will fail. The assertion that the test is currently expecting 
> is thrown when the `EndPosTable` gets set a second time, and this change 
> means that no longer results in an exception. If desired `JavacTask#parse` 
> could be updated to explicitly check if it is called twice and fail, instead 
> of indirectly relying on the `EndPosTable` for that.
> 
> * `test/langtools/tools/javac/diags/DiagnosticGetEndPosition.java` - there's 
> a comment that 'ideally would be "0", but the positions are not fully set 
> yet', and with the new approach the end position is available to the test, so 
> it resolves the comment. Also the test logic didn't handle platform specific 
> line ending variations correctly, so I updated it to work on windows now that 
> end positions are present.

Liam Miller-Cushon has updated the pull request with a new target base due to a 
merge or a rebase. The incremental webrev excludes the unrelated changes 
brought in by the merge/rebase. The pull request contains six additional 
commits since the last revision:

 - Merge remote-tracking branch 'origin/master' into JDK-8372948
 - Fix DiagnosticGetEndPosition on windows
 - Debug DiagnosticGetEndPosition.java on windows
 - Update assertion for 
test/langtools/tools/javac/diags/DiagnosticGetEndPosition.java
 - Merge remote-tracking branch 'origin/master' into JDK-8372948
 - 8372948: Store end positions directly in JCTree

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/28610/files
  - new: https://git.openjdk.org/jdk/pull/28610/files/a86c0446..b6497095

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=28610&range=04
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=28610&range=03-04

  Stats: 52134 lines in 3104 files changed: 24176 ins; 8684 del; 19274 mod
  Patch: https://git.openjdk.org/jdk/pull/28610.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/28610/head:pull/28610

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

Reply via email to