PreviewFeature on packages and modules

Alex Buckley alex.buckley at oracle.com
Thu Feb 4 17:53:57 UTC 2021


On 2/4/2021 8:44 AM, Jan Lahoda wrote:
> On 03. 02. 21 23:58, Alex Buckley wrote:
>> In sum, there's a strong case for saying that everything in a preview 
>> module has preview status. (Where marking anything in the module with 
>> @PreviewFeature is legal but redundant.) This would be convenient for 
>> preview API designers, who could write @PreviewFeature once and have 
>> it trickle down.
>>
>> I suspect this is either very painful to implement in javac/javadoc, 
>> or very easy. Jan, please tell us which! :-)
> 
> Propagating the preview flag from module to (top-level, presumably) 
> classes seems to be fairly easy when compiling against classfiles. 
> Propagating the flag from packages to classes would be more difficult, 
> as the preview flag is commonly not read for packages - if we were to 
> change that, we would need start reading all package-info.class files, 
> with possible implications on performance.

Thanks Jan (and Jon). Propagating the preview flag from module to 
top-level classes is all that's required. I'm happy to cut packages out 
of the discussion completely, both for the reason you give and because 
package-level annotations were a mistake. (Sharp-eyed readers will 
notice that JLS 9.6.4.6 no longer mentions "package" as a program 
element that can be deprecated.)  If an API designer wishes to preview a 
new package, then every top-level class in the package will need to be 
flagged @PreviewFeature. JEP 12 can document all this after implementation.

Alex


More information about the compiler-dev mailing list