RFR: 8353757: Log class should have a proper clear() method [v2]

Maurizio Cimadamore mcimadamore at openjdk.org
Mon Apr 7 09:00:54 UTC 2025


On Fri, 4 Apr 2025 22:20:28 GMT, Archie Cobbs <acobbs at openjdk.org> wrote:

>> This is a simple refactoring to add a method `Log.clear()`, move `ReusableLog.clear()`'s clearing operations into it and invoke `super.clear()` instead, and add two more fields that should be included in the clear operation but were not because they were added to `Log` after `ReusableLog.clear()` was added and were missed.
>> 
>> A natural question: Are there any other fields in `Log` that should be cleared in `Log.clear()`? The two I've added (`nsuppressederrors` and `nsuppressedwarns`) are the only two that weren't there when `ReusableLog` as added, so presumably not, but it's possible.
>
> Archie Cobbs has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Invoke Log.useSource() before recursing into attribution.

src/jdk.compiler/share/classes/com/sun/tools/javac/api/JavacTrees.java line 364:

> 362:                 try {
> 363:                     Env<AttrContext> env = getAttrContext(path.getTreePath());
> 364:                     JavaFileObject prevSource = log.useSource(env.toplevel.sourcefile);

These fixes are independent correct? (I'm ok with them being added here)

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

PR Review Comment: https://git.openjdk.org/jdk/pull/24460#discussion_r2030775918


More information about the compiler-dev mailing list