JDK 14 RFR of 8237062: Refine JSR 269 API ahead of Java SE 14 MR

Jan Lahoda jan.lahoda at oracle.com
Tue Jan 14 11:48:37 UTC 2020


Looks good to me.

Jan

On 14. 01. 20 8:00, Joe Darcy wrote:
> Hello,
> 
>  From a pass over the JSR 269 API ahead of its MR for Java SE 14, I 
> noticed some small areas for improvement:
> 
>      http://cr.openjdk.java.net/~darcy/8237062.0/
> 
> The Filer is updated to refer to the Generated annotation that was added 
> to the containing package back in Java SE 9. The largest update is for 
> AnnotatedConstruct to make some reference to how annotations are record 
> components are propagated down to other members.
> 
> Patch below; thanks,
> 
> -Joe
> 
> --- 
> old/src/java.compiler/share/classes/javax/annotation/processing/Filer.java 
> 2020-01-13 22:55:36.206212693 -0800
> +++ 
> new/src/java.compiler/share/classes/javax/annotation/processing/Filer.java 
> 2020-01-13 22:55:36.026302687 -0800
> @@ -1,5 +1,5 @@
>   /*
> - * Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights 
> reserved.
> + * Copyright (c) 2005, 2020, Oracle and/or its affiliates. All rights 
> reserved.
>    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
>    *
>    * This code is free software; you can redistribute it and/or modify it
> @@ -113,7 +113,7 @@
>    * to overwrite existing files that were not generated.
>    *
>    * <p> Processors can indicate a source or class file is generated by
> - * including a {@code javax.annotation.Generated} annotation if the
> + * including a {@link javax.annotation.processing.Generated} annotation 
> if the
>    * environment is configured so that that type is accessible.
>    *
>    * @apiNote Some of the effect of overwriting a file can be
> --- 
> old/src/java.compiler/share/classes/javax/annotation/processing/Processor.java 
> 2020-01-13 22:55:36.578026707 -0800
> +++ 
> new/src/java.compiler/share/classes/javax/annotation/processing/Processor.java 
> 2020-01-13 22:55:36.406112701 -0800
> @@ -1,5 +1,5 @@
>   /*
> - * Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights 
> reserved.
> + * Copyright (c) 2005, 2020, Oracle and/or its affiliates. All rights 
> reserved.
>    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
>    *
>    * This code is free software; you can redistribute it and/or modify it
> @@ -130,7 +130,7 @@
>    * annotations on elements, are ignored when computing whether or not
>    * an annotation type is present.
>    *
> - * <p>An annotation is present if it meets the definition of being
> + * <p>An annotation is <em>present</em> if it meets the definition of 
> being
>    * present given in {@link AnnotatedConstruct}. In brief, an
>    * annotation is considered present for the purposes of discovery if
>    * it is directly present or present via inheritance. An annotation is
> --- 
> old/src/java.compiler/share/classes/javax/lang/model/AnnotatedConstruct.java 
> 2020-01-13 22:55:37.289670733 -0800
> +++ 
> new/src/java.compiler/share/classes/javax/lang/model/AnnotatedConstruct.java 
> 2020-01-13 22:55:37.113758726 -0800
> @@ -1,5 +1,5 @@
>   /*
> - * Copyright (c) 2013, 2019, Oracle and/or its affiliates. All rights 
> reserved.
> + * Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights 
> reserved.
>    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
>    *
>    * This code is free software; you can redistribute it and/or modify it
> @@ -60,10 +60,17 @@
>    * the source code of representation of <i>C</i>, then <i>A</i> is
>    * explicitly declared as applying to <i>C</i>.
>    *
> + * An annotation of type <i>AT</i> on a {@linkplain
> + * RecordComponentElement record component} can be implicitly propagated
> + * down to affiliated mandated members. Type annotations modifying the
> + * type of a record component can be also propagated to mandated
> + * members. Propagation of the annotations to mandated members is
> + * governed by rules given in the <cite>The Java™ Language
> + * Specification</cite>.
> + *
>    * If there are multiple annotations of type <i>AT</i> present on
>    * <i>C</i>, then if <i>AT</i> is repeatable annotation type, an
>    * annotation of type <i>ATC</i> is {@linkplain 
> javax.lang.model.util.Elements#getOrigin(AnnotatedConstruct, 
> AnnotationMirror) implicitly declared} on <i>C</i>.
> - *
>    * <li> A representation of <i>A</i> appears in the executable output
>    * for <i>C</i>, such as the {@code RuntimeVisibleAnnotations} or
>    * {@code RuntimeVisibleParameterAnnotations} attributes of a class
> 


More information about the compiler-dev mailing list