JDK 8 code review request for JDK-8025913 - Rename jdk.Supported to jdk.Exported

Joe Darcy joe.darcy at oracle.com
Wed Oct 9 00:57:40 UTC 2013


On 10/04/2013 10:30 AM, mark.reinhold at oracle.com wrote:
> 2013/10/3 16:43 -0700, joe.darcy at oracle.com:
>> Per previous discussions on the mailing list, we've decided to rename
>> the annotation type "jdk.Supported" to "jdk.Exported".
>>
>> ...
> Looks good to me.
>
> One question, though: Is it intended that one use of this annotation
> can be overridden by another at a deeper lexical level?  For example:
>
>      @Supported
>      public class X {
>
>          @Supported(false)
>          public static class Y {
>          }
>
>      }

I would say that is most likely a logical error to have inconsistent 
exported-ness on a top-level and its nested types, but it is an 
extra-linguistic correctness issue for the semantics we want to impose 
on this annotation.

Conceivably, such an inconsistency could arise if for some reason a 
nested type was slated for removal in the future but the containing type 
was not.

>
> Equivalently, imagine @Supported in a package-info.java file and
> @Supported(false) on a type within that package.

At the package level, I'd say the package-info file should have the 
prevailing exported-ness of the types in that package, but sometimes 
there are a few bad types and the rest should stay.

>
> If so then it'd be helpful to mention this possibility in the
> specification.
>

I'll add some guidance on these points.

Thanks,

-Joe




More information about the core-libs-dev mailing list