RFR: 8286573: Remove the unnecessary method Attr#attribTopLevel and its usage

Guoxiong Li gli at openjdk.java.net
Thu May 12 13:09:49 UTC 2022


On Wed, 11 May 2022 20:47:43 GMT, Vicente Romero <vromero at openjdk.org> wrote:

>> Hi all,
>> 
>> The original patch [1] added the method `Attr#attribTopLevel` to validate the annotations of the package. Then the annotation validation was moved to the annotation pipeline [2] and the TopLevel tree node was refactored (added JCPackageDecl) [3]. So now the `Attr#attribTopLevel` is replaced by method `attribPackage` and actually is not used by any code. It is good to remove it.
>> 
>> And there are only 3 places (shown below) that add the `Env` instance to the `Todo` list which the `Attr` uses as input. They add the `Env` of module, package, class seperately to the todo list . So the `Attr` doesn't need to handle the situation about TopLevel JCCompilationUnit.
>> 
>> 1. Enter::visitTopLevel  `todo.append(packageEnv)`
>> 2. Enter::visitModuleDef `todo.append(moduleEnv)`
>> 3. ImportsPhase::runPhase `todo.append(env)`
>> 
>> Thanks for taking the time to review.
>> 
>> Best Regards,
>> -- Guoxiong
>> 
>> [1]https://github.com/openjdk/jdk/commit/13d31713dc6ac7134d81abeb11a659df2104d71f
>> [2]https://github.com/openjdk/jdk/commit/da21af58f4811285f7050691d51fe32600c0e5f8
>> [3]https://github.com/openjdk/jdk/commit/9783b65028eba41796c3e05ebb545b1a722f56b0
>
> lgtm

@vicente-romero-oracle Thanks for the review.

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

PR: https://git.openjdk.java.net/jdk/pull/8648


More information about the compiler-dev mailing list