JDK 16 RFR of JDK-8250213: Address use of default constructors in com.sun.source.util
Jonathan Gibbons
jonathan.gibbons at oracle.com
Mon Jul 27 17:19:55 UTC 2020
+1
On 7/27/20 9:25 AM, Joe Darcy wrote:
> Hi Jon,
>
> Updated webrev to improve the docs for non-abstract classes:
>
> http://cr.openjdk.java.net/~darcy/8250213.1/
>
> Patch below. For the network version of these changes, as follow-up
> work Alan may change the public constructor of abstract classes to
> protected.
>
> Thanks,
>
> -Joe
>
> ---
> old/src/jdk.compiler/share/classes/com/sun/source/util/DocTreePathScanner.java
> 2020-07-27 09:20:26.556000000 -0700
> +++
> new/src/jdk.compiler/share/classes/com/sun/source/util/DocTreePathScanner.java
> 2020-07-27 09:20:25.476000000 -0700
> @@ -39,6 +39,11 @@
> */
> public class DocTreePathScanner<R, P> extends DocTreeScanner<R, P> {
> /**
> + * Constructs a {@code DocTreePathScanner}.
> + */
> + public DocTreePathScanner() {}
> +
> + /**
> * Scans a tree from a position identified by a tree path.
> * @param path the path
> * @param p a value to be passed to visitor methods
> ---
> old/src/jdk.compiler/share/classes/com/sun/source/util/DocTreeScanner.java
> 2020-07-27 09:20:28.600000000 -0700
> +++
> new/src/jdk.compiler/share/classes/com/sun/source/util/DocTreeScanner.java
> 2020-07-27 09:20:27.504000000 -0700
> @@ -68,6 +68,10 @@
> * @since 1.8
> */
> public class DocTreeScanner<R,P> implements DocTreeVisitor<R,P> {
> + /**
> + * Constructs a {@code DocTreeScanner}.
> + */
> + public DocTreeScanner() {}
>
> /**
> * Scans a single node.
> ---
> old/src/jdk.compiler/share/classes/com/sun/source/util/DocTrees.java
> 2020-07-27 09:20:30.312000000 -0700
> +++
> new/src/jdk.compiler/share/classes/com/sun/source/util/DocTrees.java
> 2020-07-27 09:20:29.492000000 -0700
> @@ -47,6 +47,11 @@
> */
> public abstract class DocTrees extends Trees {
> /**
> + * Constructor for subclasses to call.
> + */
> + public DocTrees() {}
> +
> + /**
> * Returns a DocTrees object for a given CompilationTask.
> * @param task the compilation task for which to get the Trees
> object
> * @return the DocTrees object
> ---
> old/src/jdk.compiler/share/classes/com/sun/source/util/JavacTask.java
> 2020-07-27 09:20:32.088000000 -0700
> +++
> new/src/jdk.compiler/share/classes/com/sun/source/util/JavacTask.java
> 2020-07-27 09:20:31.224000000 -0700
> @@ -50,6 +50,10 @@
> * @since 1.6
> */
> public abstract class JavacTask implements CompilationTask {
> + /**
> + * Constructor for subclasses to call.
> + */
> + public JavacTask() {}
>
> /**
> * Returns the {@code JavacTask} for a {@code
> ProcessingEnvironment}.
> ---
> old/src/jdk.compiler/share/classes/com/sun/source/util/TreePathScanner.java
> 2020-07-27 09:20:33.688000000 -0700
> +++
> new/src/jdk.compiler/share/classes/com/sun/source/util/TreePathScanner.java
> 2020-07-27 09:20:32.804000000 -0700
> @@ -43,6 +43,10 @@
> * @since 1.6
> */
> public class TreePathScanner<R, P> extends TreeScanner<R, P> {
> + /**
> + * Constructs a {@code TreePathScanner}.
> + */
> + public TreePathScanner() {}
>
> /**
> * Scans a tree from a position identified by a TreePath.
> ---
> old/src/jdk.compiler/share/classes/com/sun/source/util/TreeScanner.java
> 2020-07-27 09:20:35.172000000 -0700
> +++
> new/src/jdk.compiler/share/classes/com/sun/source/util/TreeScanner.java
> 2020-07-27 09:20:34.448000000 -0700
> @@ -75,6 +75,10 @@
> * @since 1.6
> */
> public class TreeScanner<R,P> implements TreeVisitor<R,P> {
> + /**
> + * Constructs a {@code TreeScanner}.
> + */
> + public TreeScanner() {}
>
> /**
> * Scans a single node.
> --- old/src/jdk.compiler/share/classes/com/sun/source/util/Trees.java
> 2020-07-27 09:20:36.912000000 -0700
> +++ new/src/jdk.compiler/share/classes/com/sun/source/util/Trees.java
> 2020-07-27 09:20:36.004000000 -0700
> @@ -53,6 +53,11 @@
> */
> public abstract class Trees {
> /**
> + * Constructor for subclasses to call.
> + */
> + public Trees() {}
> +
> + /**
> * Returns a Trees object for a given CompilationTask.
> * @param task the compilation task for which to get the Trees
> object
> * @throws IllegalArgumentException if the task does not support
> the Trees API.
> --- old/src/jdk.compiler/share/classes/com/sun/tools/javac/Main.java
> 2020-07-27 09:20:38.680000000 -0700
> +++ new/src/jdk.compiler/share/classes/com/sun/tools/javac/Main.java
> 2020-07-27 09:20:37.764000000 -0700
> @@ -34,6 +34,11 @@
> * module for details on replacement APIs.
> */
> public class Main {
> + /**
> + * Do not call.
> + */
> + @Deprecated(since="16", forRemoval=true)
> + public Main(){}
>
> /** Main entry point for the launcher.
> * Note: This method calls System.exit.
>
> On 7/23/2020 10:17 AM, Joe Darcy wrote:
>> Hi Jon,
>>
>> For the non-abstract classes, I'm happy to change the verbiage to the
>> true (if not very informative) "Creates a $FOO."
>>
>> Longer term, deprecating the unintended constructors for removal
>> would be fine too. (This patch is the first in a series to clean-up
>> the JDK with the intention of introducing a new lint warning for
>> using default constructors.)
>>
>> Thanks,
>>
>> -Joe
>>
>>
More information about the compiler-dev
mailing list