--- old/src/java.compiler/share/classes/javax/lang/model/element/AnnotationValueVisitor.java 2020-03-13 20:20:59.462000000 -0700 +++ new/src/java.compiler/share/classes/javax/lang/model/element/AnnotationValueVisitor.java 2020-03-13 20:20:58.878000000 -0700 @@ -48,33 +48,34 @@ * is {@code null}; see documentation of the implementing class for * details. * - *
WARNING: It is possible that methods will be added to - * this interface to accommodate new, currently unknown, language + * @apiNote + * WARNING: It is possible that methods will be added + * to this interface to accommodate new, currently unknown, language * structures added to future versions of the Java™ programming - * language. Therefore, visitor classes directly implementing this - * interface may be source incompatible with future versions of the - * platform. To avoid this source incompatibility, visitor - * implementations are encouraged to instead extend the appropriate - * abstract visitor class that implements this interface. However, an - * API should generally use this visitor interface as the type for - * parameters, return type, etc. rather than one of the abstract - * classes. + * language. * - *
Note that methods to accommodate new language constructs could - * be added in a source compatible way if they were added as - * default methods. However, default methods are only - * available on Java SE 8 and higher releases and the {@code - * javax.lang.model.*} packages bundled in Java SE 8 were required to - * also be runnable on Java SE 7. Therefore, default methods - * were not used when extending {@code javax.lang.model.*} - * to cover Java SE 8 language features. However, default methods - * are used in subsequent revisions of the {@code javax.lang.model.*} - * packages that are only required to run on Java SE 8 and higher - * platform versions. + * Such additions have already occurred in another visitor interface in + * this package to support language features added after this API was + * introduced. * - * @apiNote + * Visitor classes directly implementing this interface may be source + * incompatible with future versions of the platform. To avoid this + * source incompatibility, visitor implementations are encouraged to + * instead extend the appropriate abstract visitor class that + * implements this interface. However, an API should generally use + * this visitor interface as the type for parameters, return type, + * etc. rather than one of the abstract classes. + * + *
Methods to accommodate new language constructs are expected to + * be added as default methods to provide strong source compatibility, + * as done for {@link ElementVisitor#visitModule visitModule} in + * {@code ElementVisitor}. The implementations of the default methods + * in this interface will in turn call {@link visitUnknown + * visitUnknown}, behavior that will be overridden in concrete + * visitors supporting the source version with the new language + * construct. * - * There are several families of classes implementing this visitor + *
There are several families of classes implementing this visitor * interface in the {@linkplain javax.lang.model.util util * package}. The families follow a naming pattern along the lines of * {@code FooVisitor}N where N indicates the --- old/src/java.compiler/share/classes/javax/lang/model/element/ElementVisitor.java 2020-03-13 20:21:00.370000000 -0700 +++ new/src/java.compiler/share/classes/javax/lang/model/element/ElementVisitor.java 2020-03-13 20:20:59.930000000 -0700 @@ -40,33 +40,32 @@ * is {@code null}; see documentation of the implementing class for * details. * - *
WARNING: It is possible that methods will be added to - * this interface to accommodate new, currently unknown, language + * @apiNote + * WARNING: It is possible that methods will be added + * to this interface to accommodate new, currently unknown, language * structures added to future versions of the Java™ programming - * language. Therefore, visitor classes directly implementing this - * interface may be source incompatible with future versions of the - * platform. To avoid this source incompatibility, visitor - * implementations are encouraged to instead extend the appropriate - * abstract visitor class that implements this interface. However, an - * API should generally use this visitor interface as the type for - * parameters, return type, etc. rather than one of the abstract - * classes. + * language. * - *
Note that methods to accommodate new language constructs could - * be added in a source compatible way if they were added as - * default methods. However, default methods are only - * available on Java SE 8 and higher releases and the {@code - * javax.lang.model.*} packages bundled in Java SE 8 were required to - * also be runnable on Java SE 7. Therefore, default methods - * were not used when extending {@code javax.lang.model.*} - * to cover Java SE 8 language features. However, default methods - * are used in subsequent revisions of the {@code javax.lang.model.*} - * packages that are only required to run on Java SE 8 and higher - * platform versions. + * Such additions have already occurred to support language features + * added after this API was introduced. * - * @apiNote + * Visitor classes directly implementing this interface may be source + * incompatible with future versions of the platform. To avoid this + * source incompatibility, visitor implementations are encouraged to + * instead extend the appropriate abstract visitor class that + * implements this interface. However, an API should generally use + * this visitor interface as the type for parameters, return type, + * etc. rather than one of the abstract classes. + * + *
Methods to accommodate new language constructs are expected to + * be added as default methods to provide strong source compatibility, + * as done for {@link visitModule visitModule}. The implementations of + * the default methods will in turn call {@link visitUnknown + * visitUnknown}, behavior that will be overridden in concrete + * visitors supporting the source version with the new language + * construct. * - * There are several families of classes implementing this visitor + *
There are several families of classes implementing this visitor * interface in the {@linkplain javax.lang.model.util util * package}. The families follow a naming pattern along the lines of * {@code FooVisitor}N where N indicates the --- old/src/java.compiler/share/classes/javax/lang/model/type/TypeVisitor.java 2020-03-13 20:21:01.378000000 -0700 +++ new/src/java.compiler/share/classes/javax/lang/model/type/TypeVisitor.java 2020-03-13 20:21:00.938000000 -0700 @@ -41,33 +41,31 @@ * is {@code null}; see documentation of the implementing class for * details. * - *
WARNING: It is possible that methods will be added to - * this interface to accommodate new, currently unknown, language + * @apiNote + * WARNING: It is possible that methods will be added + * to this interface to accommodate new, currently unknown, language * structures added to future versions of the Java™ programming - * language. Therefore, visitor classes directly implementing this - * interface may be source incompatible with future versions of the - * platform. To avoid this source incompatibility, visitor - * implementations are encouraged to instead extend the appropriate - * abstract visitor class that implements this interface. However, an - * API should generally use this visitor interface as the type for - * parameters, return type, etc. rather than one of the abstract - * classes. + * language. * - *
Note that methods to accommodate new language constructs could - * be added in a source compatible way if they were added as - * default methods. However, default methods are only - * available on Java SE 8 and higher releases and the {@code - * javax.lang.model.*} packages bundled in Java SE 8 were required to - * also be runnable on Java SE 7. Therefore, default methods - * were not used when extending {@code javax.lang.model.*} - * to cover Java SE 8 language features. However, default methods - * are used in subsequent revisions of the {@code javax.lang.model.*} - * packages that are only required to run on Java SE 8 and higher - * platform versions. + * Such additions have already occurred to support language features + * added after this API was introduced. * - * @apiNote + * Visitor classes directly implementing this interface may be source + * incompatible with future versions of the platform. To avoid this + * source incompatibility, visitor implementations are encouraged to + * instead extend the appropriate abstract visitor class that + * implements this interface. However, an API should generally use + * this visitor interface as the type for parameters, return type, + * etc. rather than one of the abstract classes. + * + *
Methods to accommodate new language constructs are expected to + * be added as default methods to provide strong source + * compatibility. The implementations of the default methods will in + * turn call {@link visitUnknown visitUnknown}, behavior that will be + * overridden in concrete visitors supporting the source version with + * the new language construct. * - * There are several families of classes implementing this visitor + *
There are several families of classes implementing this visitor * interface in the {@linkplain javax.lang.model.util util * package}. The families follow a naming pattern along the lines of * {@code FooVisitor}N where N indicates the --- old/src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor6.java 2020-03-13 20:21:02.234000000 -0700 +++ new/src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor6.java 2020-03-13 20:21:01.838000000 -0700 @@ -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 @@ -37,22 +37,25 @@ * appropriate for the {@link SourceVersion#RELEASE_6 RELEASE_6} * source version. * - *
WARNING: The {@code AnnotationValueVisitor} interface - * implemented by this class may have methods added to it in the - * future to accommodate new, currently unknown, language structures - * added to future versions of the Java™ programming language. - * Therefore, methods whose names begin with {@code "visit"} may be - * added to this class in the future; to avoid incompatibilities, - * classes which extend this class should not declare any instance - * methods with names beginning with {@code "visit"}. + * @apiNote + *
WARNING: The {@code + * AnnotationValueVisitor} interface implemented by this class may + * have methods added to it in the future to accommodate new, + * currently unknown, language structures added to future versions of + * the Java™ programming language. Therefore, methods whose + * names begin with {@code "visit"} may be added to this class in the + * future; to avoid incompatibilities, classes and subclasses which + * extend this class should not declare any instance methods with + * names beginning with {@code "visit"}.
* *When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new abstract annotation
- * value visitor class will also be introduced to correspond to the
- * new language level; this visitor will have different default
- * behavior for the visit method in question. When the new visitor is
- * introduced, all or portions of this visitor may be deprecated.
+ * implementation in this class will be to directly or indirectly call
+ * the {@link #visitUnknown visitUnknown} method. A new abstract
+ * annotation value visitor class will also be introduced to
+ * correspond to the new language level; this visitor will have
+ * different default behavior for the visit method in question. When
+ * a new visitor is introduced, portions of this visitor class may be
+ * deprecated, including its constructors.
*
* @param the type of the additional parameter to this visitor's methods.
--- old/src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor7.java 2020-03-13 20:21:03.158000000 -0700
+++ new/src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor7.java 2020-03-13 20:21:02.734000000 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 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
@@ -34,26 +34,11 @@
* appropriate for the {@link SourceVersion#RELEASE_7 RELEASE_7}
* source version.
*
- * WARNING: The {@code AnnotationValueVisitor} interface
- * implemented by this class may have methods added to it in the
- * future to accommodate new, currently unknown, language structures
- * added to future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new abstract annotation
- * value visitor class will also be introduced to correspond to the
- * new language level; this visitor will have different default
- * behavior for the visit method in question. When the new visitor is
- * introduced, all or portions of this visitor may be deprecated.
- *
* @param the type of the additional parameter to this visitor's methods.
*
+ * @see
+ * Compatibility note for subclasses
* @see AbstractAnnotationValueVisitor6
* @see AbstractAnnotationValueVisitor8
* @see AbstractAnnotationValueVisitor9
--- old/src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor8.java 2020-03-13 20:21:03.886000000 -0700
+++ new/src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor8.java 2020-03-13 20:21:03.530000000 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -34,26 +34,11 @@
* appropriate for the {@link SourceVersion#RELEASE_8 RELEASE_8}
* source version.
*
- * WARNING: The {@code AnnotationValueVisitor} interface
- * implemented by this class may have methods added to it in the
- * future to accommodate new, currently unknown, language structures
- * added to future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new abstract annotation
- * value visitor class will also be introduced to correspond to the
- * new language level; this visitor will have different default
- * behavior for the visit method in question. When the new visitor is
- * introduced, all or portions of this visitor may be deprecated.
- *
* @param the type of the additional parameter to this visitor's methods.
*
+ * @see
+ * Compatibility note for subclasses
* @see AbstractAnnotationValueVisitor6
* @see AbstractAnnotationValueVisitor7
* @see AbstractAnnotationValueVisitor9
--- old/src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor9.java 2020-03-13 20:21:04.634000000 -0700
+++ new/src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor9.java 2020-03-13 20:21:04.274000000 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -34,26 +34,11 @@
* appropriate for source versions {@link SourceVersion#RELEASE_9
* RELEASE_9} through {@link SourceVersion#RELEASE_14 RELEASE_14}.
*
- * WARNING: The {@code AnnotationValueVisitor} interface
- * implemented by this class may have methods added to it in the
- * future to accommodate new, currently unknown, language structures
- * added to future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new abstract annotation
- * value visitor class will also be introduced to correspond to the
- * new language level; this visitor will have different default
- * behavior for the visit method in question. When the new visitor is
- * introduced, all or portions of this visitor may be deprecated.
- *
* @param the type of the additional parameter to this visitor's methods.
*
+ * @see
+ * Compatibility note for subclasses
* @see AbstractAnnotationValueVisitor6
* @see AbstractAnnotationValueVisitor7
* @see AbstractAnnotationValueVisitor8
--- old/src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor14.java 2020-03-13 20:21:05.350000000 -0700
+++ new/src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor14.java 2020-03-13 20:21:05.002000000 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2019, 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
@@ -33,26 +33,11 @@
* A skeletal visitor for annotation values with default behavior
* appropriate for source version {@link SourceVersion#RELEASE_14 RELEASE_14}.
*
- * WARNING: The {@code AnnotationValueVisitor} interface
- * implemented by this class may have methods added to it in the
- * future to accommodate new, currently unknown, language structures
- * added to future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new abstract annotation
- * value visitor class will also be introduced to correspond to the
- * new language level; this visitor will have different default
- * behavior for the visit method in question. When the new visitor is
- * introduced, all or portions of this visitor may be deprecated.
- *
* @param the type of the additional parameter to this visitor's methods.
*
+ * @see
+ * Compatibility note for subclasses
* @see AbstractAnnotationValueVisitor6
* @see AbstractAnnotationValueVisitor7
* @see AbstractAnnotationValueVisitor8
--- old/src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor6.java 2020-03-13 20:21:06.078000000 -0700
+++ new/src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor6.java 2020-03-13 20:21:05.706000000 -0700
@@ -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
@@ -36,22 +36,25 @@
* appropriate for the {@link SourceVersion#RELEASE_6 RELEASE_6}
* source version.
*
- * WARNING: The {@code ElementVisitor} interface
- * implemented by this class may have methods added to it in the
- * future to accommodate new, currently unknown, language structures
- * added to future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
+ * @apiNote
+ * WARNING: The {@code
+ * ElementVisitor} interface implemented by this class may have
+ * methods added to it in the future to accommodate new, currently
+ * unknown, language structures added to future versions of the
+ * Java™ programming language. Therefore, methods whose names
+ * begin with {@code "visit"} may be added to this class in the
+ * future; to avoid incompatibilities, classes and subclasses which
+ * extend this class should not declare any instance methods with
+ * names beginning with {@code "visit"}. When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new abstract element visitor
- * class will also be introduced to correspond to the new language
- * level; this visitor will have different default behavior for the
- * visit method in question. When the new visitor is introduced, all
- * or portions of this visitor may be deprecated.
+ * implementation in this class will be to directly or indirectly call
+ * the {@link #visitUnknown visitUnknown} method. A new abstract
+ * element visitor class will also be introduced to correspond to the
+ * new language level; this visitor will have different default
+ * behavior for the visit method in question. When a new visitor is
+ * introduced, portions of this visitor class may be deprecated,
+ * including its constructors.
*
* @param WARNING: The {@code ElementVisitor} interface
- * implemented by this class may have methods added to it in the
- * future to accommodate new, currently unknown, language structures
- * added to future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new abstract element visitor
- * class will also be introduced to correspond to the new language
- * level; this visitor will have different default behavior for the
- * visit method in question. When the new visitor is introduced, all
- * or portions of this visitor may be deprecated.
- *
* @param the type of the additional parameter to this visitor's
* methods. Use {@code Void} for visitors that do not need an
* additional parameter.
*
+ * @see
+ * Compatibility note for subclasses
* @see AbstractElementVisitor6
* @see AbstractElementVisitor8
* @see AbstractElementVisitor9
--- old/src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor8.java 2020-03-13 20:21:07.774000000 -0700
+++ new/src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor8.java 2020-03-13 20:21:07.398000000 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -35,29 +35,14 @@
* appropriate for the {@link SourceVersion#RELEASE_8 RELEASE_8}
* source version.
*
- * WARNING: The {@code ElementVisitor} interface
- * implemented by this class may have methods added to it in the
- * future to accommodate new, currently unknown, language structures
- * added to future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new abstract element visitor
- * class will also be introduced to correspond to the new language
- * level; this visitor will have different default behavior for the
- * visit method in question. When the new visitor is introduced, all
- * or portions of this visitor may be deprecated.
- *
* @param the type of the additional parameter to this visitor's
* methods. Use {@code Void} for visitors that do not need an
* additional parameter.
*
+ * @see
+ * Compatibility note for subclasses
* @see AbstractElementVisitor6
* @see AbstractElementVisitor7
* @see AbstractElementVisitor9
--- old/src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor9.java 2020-03-13 20:21:08.614000000 -0700
+++ new/src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor9.java 2020-03-13 20:21:08.222000000 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -36,29 +36,14 @@
* appropriate for source versions {@link SourceVersion#RELEASE_9
* RELEASE_9} through {@link SourceVersion#RELEASE_14 RELEASE_14}.
*
- * WARNING: The {@code ElementVisitor} interface
- * implemented by this class may have methods added to it in the
- * future to accommodate new, currently unknown, language structures
- * added to future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new abstract element visitor
- * class will also be introduced to correspond to the new language
- * level; this visitor will have different default behavior for the
- * visit method in question. When the new visitor is introduced, all
- * or portions of this visitor may be deprecated.
- *
* @param the type of the additional parameter to this visitor's
* methods. Use {@code Void} for visitors that do not need an
* additional parameter.
*
+ * @see
+ * Compatibility note for subclasses
* @see AbstractElementVisitor6
* @see AbstractElementVisitor7
* @see AbstractElementVisitor8
--- old/src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor14.java 2020-03-13 20:21:09.526000000 -0700
+++ new/src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor14.java 2020-03-13 20:21:09.062000000 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2019, 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
@@ -42,29 +42,14 @@
* appropriate for the {@link SourceVersion#RELEASE_14 RELEASE_14}
* source version.
*
- * WARNING: The {@code ElementVisitor} interface
- * implemented by this class may have methods added to it in the
- * future to accommodate new, currently unknown, language structures
- * added to future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new abstract element visitor
- * class will also be introduced to correspond to the new language
- * level; this visitor will have different default behavior for the
- * visit method in question. When the new visitor is introduced, all
- * or portions of this visitor may be deprecated.
- *
* @param the type of the additional parameter to this visitor's
* methods. Use {@code Void} for visitors that do not need an
* additional parameter.
*
+ * @see
+ * Compatibility note for subclasses
* @see AbstractElementVisitor6
* @see AbstractElementVisitor7
* @see AbstractElementVisitor8
--- old/src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor6.java 2020-03-13 20:21:10.422000000 -0700
+++ new/src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor6.java 2020-03-13 20:21:10.042000000 -0700
@@ -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
@@ -35,22 +35,25 @@
* the {@link javax.lang.model.SourceVersion#RELEASE_6 RELEASE_6}
* source version.
*
- * WARNING: The {@code TypeVisitor} interface implemented
- * by this class may have methods added to it in the future to
- * accommodate new, currently unknown, language structures added to
- * future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
+ * @apiNote
+ * WARNING: The {@code
+ * TypeVisitor} interface implemented by this class may have methods
+ * added to it in the future to accommodate new, currently unknown,
+ * language structures added to future versions of the Java™
+ * programming language. Therefore, methods whose names begin with
+ * {@code "visit"} may be added to this class in the future; to avoid
+ * incompatibilities, classes and subclasses which extend this class
+ * should not declare any instance methods with names beginning with
+ * {@code "visit"}.
*
* When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new abstract type visitor
- * class will also be introduced to correspond to the new language
- * level; this visitor will have different default behavior for the
- * visit method in question. When the new visitor is introduced, all
- * or portions of this visitor may be deprecated.
+ * implementation in this class will be to directly or indirectly call
+ * the {@link #visitUnknown visitUnknown} method. A new abstract type
+ * visitor class will also be introduced to correspond to the new
+ * language level; this visitor will have different default behavior
+ * for the visit method in question. When a new visitor is
+ * introduced, portions of this visitor class may be deprecated,
+ * including its constructors.
*
* @param WARNING: The {@code TypeVisitor} interface implemented
- * by this class may have methods added to it in the future to
- * accommodate new, currently unknown, language structures added to
- * future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new abstract type visitor
- * class will also be introduced to correspond to the new language
- * level; this visitor will have different default behavior for the
- * visit method in question. When the new visitor is introduced, all
- * or portions of this visitor may be deprecated.
- *
* @param the type of the additional parameter to this visitor's
* methods. Use {@code Void} for visitors that do not need an
* additional parameter.
*
+ * @see
+ * Compatibility note for subclasses
* @see AbstractTypeVisitor6
* @see AbstractTypeVisitor8
* @see AbstractTypeVisitor9
--- old/src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor8.java 2020-03-13 20:21:12.186000000 -0700
+++ new/src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor8.java 2020-03-13 20:21:11.626000000 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -35,29 +35,14 @@
* the {@link javax.lang.model.SourceVersion#RELEASE_8 RELEASE_8}
* source version.
*
- * WARNING: The {@code TypeVisitor} interface implemented
- * by this class may have methods added to it in the future to
- * accommodate new, currently unknown, language structures added to
- * future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new abstract type visitor
- * class will also be introduced to correspond to the new language
- * level; this visitor will have different default behavior for the
- * visit method in question. When the new visitor is introduced, all
- * or portions of this visitor may be deprecated.
- *
* @param the type of the additional parameter to this visitor's
* methods. Use {@code Void} for visitors that do not need an
* additional parameter.
*
+ * @see
+ * Compatibility note for subclasses
* @see AbstractTypeVisitor6
* @see AbstractTypeVisitor7
* @see AbstractTypeVisitor9
--- old/src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor9.java 2020-03-13 20:21:12.942000000 -0700
+++ new/src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor9.java 2020-03-13 20:21:12.574000000 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -35,29 +35,14 @@
* source versions {@link SourceVersion#RELEASE_9 RELEASE_9} through
* {@link SourceVersion#RELEASE_14 RELEASE_14}.
*
- * WARNING: The {@code TypeVisitor} interface implemented
- * by this class may have methods added to it in the future to
- * accommodate new, currently unknown, language structures added to
- * future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new abstract type visitor
- * class will also be introduced to correspond to the new language
- * level; this visitor will have different default behavior for the
- * visit method in question. When the new visitor is introduced, all
- * or portions of this visitor may be deprecated.
- *
* @param the type of the additional parameter to this visitor's
* methods. Use {@code Void} for visitors that do not need an
* additional parameter.
*
+ * @see
+ Compatibility note for subclasses
* @see AbstractTypeVisitor6
* @see AbstractTypeVisitor7
* @see AbstractTypeVisitor8
--- old/src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor14.java 2020-03-13 20:21:13.670000000 -0700
+++ new/src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor14.java 2020-03-13 20:21:13.318000000 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2019, 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
@@ -33,29 +33,14 @@
* A skeletal visitor of types with default behavior appropriate for the
* {@link SourceVersion#RELEASE_14 RELEASE_14} source version.
*
- * WARNING: The {@code TypeVisitor} interface implemented
- * by this class may have methods added to it in the future to
- * accommodate new, currently unknown, language structures added to
- * future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new abstract type visitor
- * class will also be introduced to correspond to the new language
- * level; this visitor will have different default behavior for the
- * visit method in question. When the new visitor is introduced, all
- * or portions of this visitor may be deprecated.
- *
* @param the type of the additional parameter to this visitor's
* methods. Use {@code Void} for visitors that do not need an
* additional parameter.
*
+ * @see
+ * Compatibility note for subclasses
* @see AbstractTypeVisitor6
* @see AbstractTypeVisitor7
* @see AbstractTypeVisitor8
--- old/src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor6.java 2020-03-13 20:21:14.374000000 -0700
+++ new/src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor6.java 2020-03-13 20:21:14.030000000 -0700
@@ -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
@@ -43,29 +43,29 @@
* call {@link #defaultAction defaultAction}, passing their arguments
* to {@code defaultAction}'s corresponding parameters.
*
- * Methods in this class may be overridden subject to their
- * general contract. Note that annotating methods in concrete
- * subclasses with {@link java.lang.Override @Override} will help
- * ensure that methods are overridden as intended.
- *
- * WARNING: The {@code ElementVisitor} interface
- * implemented by this class may have methods added to it or the
- * {@code ElementKind} {@code enum} used in this case may have
- * constants added to it in the future to accommodate new, currently
- * unknown, language structures added to future versions of the
- * Java™ programming language. Therefore, methods whose names
- * begin with {@code "visit"} may be added to this class in the
- * future; to avoid incompatibilities, classes which extend this class
- * should not declare any instance methods with names beginning with
- * {@code "visit"}.
+ * @apiNote
+ * Methods in this class may be overridden subject to their
+ * general contract.
+ *
+ * WARNING: The {@code
+ * ElementVisitor} interface implemented by this class may have
+ * methods added to it or the {@link ElementKind ElementKind enum}
+ * used in this class may have constants added to it in the future to
+ * accommodate new, currently unknown, language structures added to
+ * future versions of the Java™ programming language.
+ * Therefore, methods whose names begin with {@code "visit"} may be
+ * added to this class in the future; to avoid incompatibilities,
+ * classes and subclasses which extend this class should not declare
+ * any instance methods with names beginning with {@code "visit"}. When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new abstract element kind
- * visitor class will also be introduced to correspond to the new
- * language level; this visitor will have different default behavior
- * for the visit method in question. When the new visitor is
- * introduced, all or portions of this visitor may be deprecated.
+ * implementation in this class will be to directly or indirectly call
+ * the {@link #visitUnknown visitUnknown} method. A new abstract
+ * element kind visitor class will also be introduced to correspond to
+ * the new language level; this visitor will have different default
+ * behavior for the visit method in question. When a new visitor is
+ * introduced, portions of this visitor class may be deprecated,
+ * including its constructors.
*
* @param Methods in this class may be overridden subject to their
- * general contract. Note that annotating methods in concrete
- * subclasses with {@link java.lang.Override @Override} will help
- * ensure that methods are overridden as intended.
- *
- * WARNING: The {@code ElementVisitor} interface
- * implemented by this class may have methods added to it or the
- * {@code ElementKind} {@code enum} used in this case may have
- * constants added to it in the future to accommodate new, currently
- * unknown, language structures added to future versions of the
- * Java™ programming language. Therefore, methods whose names
- * begin with {@code "visit"} may be added to this class in the
- * future; to avoid incompatibilities, classes which extend this class
- * should not declare any instance methods with names beginning with
- * {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new abstract element kind
- * visitor class will also be introduced to correspond to the new
- * language level; this visitor will have different default behavior
- * for the visit method in question. When the new visitor is
- * introduced, all or portions of this visitor may be deprecated.
+ * @apiNote
+ * Methods in this class may be overridden subject to their
+ * general contract.
*
* @param Methods in this class may be overridden subject to their
- * general contract. Note that annotating methods in concrete
- * subclasses with {@link java.lang.Override @Override} will help
- * ensure that methods are overridden as intended.
- *
- * WARNING: The {@code ElementVisitor} interface
- * implemented by this class may have methods added to it or the
- * {@code ElementKind} {@code enum} used in this case may have
- * constants added to it in the future to accommodate new, currently
- * unknown, language structures added to future versions of the
- * Java™ programming language. Therefore, methods whose names
- * begin with {@code "visit"} may be added to this class in the
- * future; to avoid incompatibilities, classes which extend this class
- * should not declare any instance methods with names beginning with
- * {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new abstract element kind
- * visitor class will also be introduced to correspond to the new
- * language level; this visitor will have different default behavior
- * for the visit method in question. When the new visitor is
- * introduced, all or portions of this visitor may be deprecated.
+ * @apiNote
+ * Methods in this class may be overridden subject to their
+ * general contract.
*
* @param Methods in this class may be overridden subject to their
- * general contract. Note that annotating methods in concrete
- * subclasses with {@link java.lang.Override @Override} will help
- * ensure that methods are overridden as intended.
- *
- * WARNING: The {@code ElementVisitor} interface
- * implemented by this class may have methods added to it or the
- * {@code ElementKind} {@code enum} used in this case may have
- * constants added to it in the future to accommodate new, currently
- * unknown, language structures added to future versions of the
- * Java™ programming language. Therefore, methods whose names
- * begin with {@code "visit"} may be added to this class in the
- * future; to avoid incompatibilities, classes which extend this class
- * should not declare any instance methods with names beginning with
- * {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new abstract element kind
- * visitor class will also be introduced to correspond to the new
- * language level; this visitor will have different default behavior
- * for the visit method in question. When the new visitor is
- * introduced, all or portions of this visitor may be deprecated.
+ * @apiNote
+ * Methods in this class may be overridden subject to their
+ * general contract.
*
* @param Methods in this class may be overridden subject to their
- * general contract. Note that annotating methods in concrete
- * subclasses with {@link java.lang.Override @Override} will help
- * ensure that methods are overridden as intended.
- *
- * WARNING: The {@code ElementVisitor} interface
- * implemented by this class may have methods added to it or the
- * {@code ElementKind} {@code enum} used in this case may have
- * constants added to it in the future to accommodate new, currently
- * unknown, language structures added to future versions of the
- * Java™ programming language. Therefore, methods whose names
- * begin with {@code "visit"} may be added to this class in the
- * future; to avoid incompatibilities, classes which extend this class
- * should not declare any instance methods with names beginning with
- * {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new abstract element kind
- * visitor class will also be introduced to correspond to the new
- * language level; this visitor will have different default behavior
- * for the visit method in question. When the new visitor is
- * introduced, all or portions of this visitor may be deprecated.
+ * @apiNote
+ * Methods in this class may be overridden subject to their
+ * general contract.
*
* @param Methods in this class may be overridden subject to their
- * general contract. Note that annotating methods in concrete
- * subclasses with {@link java.lang.Override @Override} will help
- * ensure that methods are overridden as intended.
+ * @apiNote
+ * Methods in this class may be overridden subject to their
+ * general contract.
*
- * WARNING: The {@code ElementVisitor} interface
+ * WARNING: The {@code ElementVisitor} interface
* implemented by this class may have methods added to it in the
* future to accommodate new, currently unknown, language structures
* added to future versions of the Java™ programming language.
* Therefore, methods whose names begin with {@code "visit"} may be
* added to this class in the future; to avoid incompatibilities,
* classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
+ * methods with names beginning with {@code "visit"}. When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
+ * implementation in this class will be to directly or indirectly call the {@link
* #visitUnknown visitUnknown} method. A new element scanner visitor
* class will also be introduced to correspond to the new language
* level; this visitor will have different default behavior for the
- * visit method in question. When the new visitor is introduced, all
- * or portions of this visitor may be deprecated.
+ * visit method in question. When a new visitor is introduced,
+ * portions of this visitor class may be deprecated, including its constructors.
*
* @param Methods in this class may be overridden subject to their
- * general contract. Note that annotating methods in concrete
- * subclasses with {@link java.lang.Override @Override} will help
- * ensure that methods are overridden as intended.
- *
- * WARNING: The {@code ElementVisitor} interface
- * implemented by this class may have methods added to it in the
- * future to accommodate new, currently unknown, language structures
- * added to future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new element scanner visitor
- * class will also be introduced to correspond to the new language
- * level; this visitor will have different default behavior for the
- * visit method in question. When the new visitor is introduced, all
- * or portions of this visitor may be deprecated.
+ * @apiNote
+ * Methods in this class may be overridden subject to their
+ * general contract.
*
* @param Methods in this class may be overridden subject to their
- * general contract. Note that annotating methods in concrete
- * subclasses with {@link java.lang.Override @Override} will help
- * ensure that methods are overridden as intended.
- *
- * WARNING: The {@code ElementVisitor} interface
- * implemented by this class may have methods added to it in the
- * future to accommodate new, currently unknown, language structures
- * added to future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new element scanner visitor
- * class will also be introduced to correspond to the new language
- * level; this visitor will have different default behavior for the
- * visit method in question. When the new visitor is introduced, all
- * or portions of this visitor may be deprecated.
+ * @apiNote
+ * Methods in this class may be overridden subject to their
+ * general contract.
*
* @param Methods in this class may be overridden subject to their
- * general contract. Note that annotating methods in concrete
- * subclasses with {@link java.lang.Override @Override} will help
- * ensure that methods are overridden as intended.
- *
- * WARNING: The {@code ElementVisitor} interface
- * implemented by this class may have methods added to it in the
- * future to accommodate new, currently unknown, language structures
- * added to future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new element scanner visitor
- * class will also be introduced to correspond to the new language
- * level; this visitor will have different default behavior for the
- * visit method in question. When the new visitor is introduced, all
- * or portions of this visitor may be deprecated.
+ * @apiNote
+ * Methods in this class may be overridden subject to their
+ * general contract.
*
* @param Methods in this class may be overridden subject to their
- * general contract. Note that annotating methods in concrete
- * subclasses with {@link java.lang.Override @Override} will help
- * ensure that methods are overridden as intended.
- *
- * WARNING: The {@code ElementVisitor} interface
- * implemented by this class may have methods added to it in the
- * future to accommodate new, currently unknown, language structures
- * added to future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new element scanner visitor
- * class will also be introduced to correspond to the new language
- * level; this visitor will have different default behavior for the
- * visit method in question. When the new visitor is introduced, all
- * or portions of this visitor may be deprecated.
+ * @apiNote
+ * Methods in this class may be overridden subject to their
+ * general contract.
*
* @param Methods in this class may be overridden subject to their
- * general contract. Note that annotating methods in concrete
- * subclasses with {@link java.lang.Override @Override} will help
- * ensure that methods are overridden as intended.
- *
- * WARNING: The {@code AnnotationValueVisitor} interface
- * implemented by this class may have methods added to it in the
- * future to accommodate new, currently unknown, language structures
- * added to future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
+ * @apiNote
+ * Methods in this class may be overridden subject to their general
+ * contract.
+ *
+ * WARNING: The {@code
+ * AnnotationValueVisitor} interface implemented by this class may
+ * have methods added to it in the future to accommodate new,
+ * currently unknown, language structures added to future versions of
+ * the Java™ programming language. Therefore, methods whose
+ * names begin with {@code "visit"} may be added to this class in the
+ * future; to avoid incompatibilities, classes and subclasses which
+ * extend this class should not declare any instance methods with
+ * names beginning with {@code "visit"}. When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new simple annotation
- * value visitor class will also be introduced to correspond to the
- * new language level; this visitor will have different default
- * behavior for the visit method in question. When the new visitor is
- * introduced, all or portions of this visitor may be deprecated.
+ * implementation in this class will be to directly or indirectly call
+ * the {@link #visitUnknown visitUnknown} method. A new simple
+ * annotation value visitor class will also be introduced to
+ * correspond to the new language level; this visitor will have
+ * different default behavior for the visit method in question. When
+ * a new visitor is introduced, portions of this visitor class may be
+ * deprecated, including its constructors.
*
* @param the type of the additional parameter to this visitor's methods.
--- old/src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor7.java 2020-03-13 20:21:23.682000000 -0700
+++ new/src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor7.java 2020-03-13 20:21:23.270000000 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 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
@@ -36,31 +36,15 @@
* defaultAction} passing their arguments to {@code defaultAction}'s
* corresponding parameters.
*
- * Methods in this class may be overridden subject to their
- * general contract. Note that annotating methods in concrete
- * subclasses with {@link java.lang.Override @Override} will help
- * ensure that methods are overridden as intended.
- *
- * WARNING: The {@code AnnotationValueVisitor} interface
- * implemented by this class may have methods added to it in the
- * future to accommodate new, currently unknown, language structures
- * added to future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new simple annotation
- * value visitor class will also be introduced to correspond to the
- * new language level; this visitor will have different default
- * behavior for the visit method in question. When the new visitor is
- * introduced, all or portions of this visitor may be deprecated.
+ * @apiNote
+ * Methods in this class may be overridden subject to their general
+ * contract.
*
* @param the type of the additional parameter to this visitor's methods.
*
+ * @see
+ * Compatibility note for subclasses
* @see SimpleAnnotationValueVisitor6
* @see SimpleAnnotationValueVisitor8
* @see SimpleAnnotationValueVisitor9
--- old/src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor8.java 2020-03-13 20:21:24.558000000 -0700
+++ new/src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor8.java 2020-03-13 20:21:24.162000000 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -36,31 +36,15 @@
* defaultAction} passing their arguments to {@code defaultAction}'s
* corresponding parameters.
*
- * Methods in this class may be overridden subject to their
- * general contract. Note that annotating methods in concrete
- * subclasses with {@link java.lang.Override @Override} will help
- * ensure that methods are overridden as intended.
- *
- * WARNING: The {@code AnnotationValueVisitor} interface
- * implemented by this class may have methods added to it in the
- * future to accommodate new, currently unknown, language structures
- * added to future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new simple annotation
- * value visitor class will also be introduced to correspond to the
- * new language level; this visitor will have different default
- * behavior for the visit method in question. When the new visitor is
- * introduced, all or portions of this visitor may be deprecated.
+ * @apiNote
+ * Methods in this class may be overridden subject to their general
+ * contract.
*
* @param the type of the additional parameter to this visitor's methods.
*
+ * @see
+ * Compatibility note for subclasses
* @see SimpleAnnotationValueVisitor6
* @see SimpleAnnotationValueVisitor7
* @see SimpleAnnotationValueVisitor8
--- old/src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor9.java 2020-03-13 20:21:25.382000000 -0700
+++ new/src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor9.java 2020-03-13 20:21:25.042000000 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -38,31 +38,15 @@
* defaultAction} passing their arguments to {@code defaultAction}'s
* corresponding parameters.
*
- * Methods in this class may be overridden subject to their
- * general contract. Note that annotating methods in concrete
- * subclasses with {@link java.lang.Override @Override} will help
- * ensure that methods are overridden as intended.
- *
- * WARNING: The {@code AnnotationValueVisitor} interface
- * implemented by this class may have methods added to it in the
- * future to accommodate new, currently unknown, language structures
- * added to future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new simple annotation
- * value visitor class will also be introduced to correspond to the
- * new language level; this visitor will have different default
- * behavior for the visit method in question. When the new visitor is
- * introduced, all or portions of this visitor may be deprecated.
+ * @apiNote
+ * Methods in this class may be overridden subject to their general
+ * contract.
*
* @param the type of the additional parameter to this visitor's methods.
*
+ * @see
+ * Compatibility note for subclasses
* @see SimpleAnnotationValueVisitor6
* @see SimpleAnnotationValueVisitor7
* @see SimpleAnnotationValueVisitor8
--- old/src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor14.java 2020-03-13 20:21:26.242000000 -0700
+++ new/src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor14.java 2020-03-13 20:21:25.790000000 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2019, 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
@@ -37,31 +37,15 @@
* defaultAction} passing their arguments to {@code defaultAction}'s
* corresponding parameters.
*
- * Methods in this class may be overridden subject to their
- * general contract. Note that annotating methods in concrete
- * subclasses with {@link java.lang.Override @Override} will help
- * ensure that methods are overridden as intended.
- *
- * WARNING: The {@code AnnotationValueVisitor} interface
- * implemented by this class may have methods added to it in the
- * future to accommodate new, currently unknown, language structures
- * added to future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new simple annotation
- * value visitor class will also be introduced to correspond to the
- * new language level; this visitor will have different default
- * behavior for the visit method in question. When the new visitor is
- * introduced, all or portions of this visitor may be deprecated.
+ * @apiNote
+ * Methods in this class may be overridden subject to their general
+ * contract.
*
* @param the type of the additional parameter to this visitor's methods.
*
+ * @see
+ * Compatibility note for subclasses
* @see SimpleAnnotationValueVisitor6
* @see SimpleAnnotationValueVisitor7
* @see SimpleAnnotationValueVisitor8
--- old/src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor6.java 2020-03-13 20:21:27.110000000 -0700
+++ new/src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor6.java 2020-03-13 20:21:26.694000000 -0700
@@ -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
@@ -43,27 +43,29 @@
* For constructs introduced in {@code RELEASE_7} and later, {@code
* visitUnknown} is called instead.
*
- * Methods in this class may be overridden subject to their
- * general contract. Note that annotating methods in concrete
- * subclasses with {@link java.lang.Override @Override} will help
- * ensure that methods are overridden as intended.
- *
- * WARNING: The {@code ElementVisitor} interface
- * implemented by this class may have methods added to it in the
- * future to accommodate new, currently unknown, language structures
- * added to future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
+ *
+ * @apiNote
+ * Methods in this class may be overridden subject to their general
+ * contract.
+ *
+ * WARNING: The {@code
+ * ElementVisitor} interface implemented by this class may have
+ * methods added to it in the future to accommodate new, currently
+ * unknown, language structures added to future versions of the
+ * Java™ programming language. Therefore, methods whose names
+ * begin with {@code "visit"} may be added to this class in the
+ * future; to avoid incompatibilities, classes and subclasses which
+ * extend this class should not declare any instance methods with
+ * names beginning with {@code "visit"}. When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new simple element visitor
- * class will also be introduced to correspond to the new language
- * level; this visitor will have different default behavior for the
- * visit method in question. When the new visitor is introduced, all
- * or portions of this visitor may be deprecated.
+ * implementation in this class will be to directly or indirectly call
+ * the {@link #visitUnknown visitUnknown} method. A new simple
+ * element visitor class will also be introduced to correspond to the
+ * new language level; this visitor will have different default
+ * behavior for the visit method in question. When a new visitor is
+ * introduced, portions of this visitor class may be deprecated,
+ * including its constructors.
*
* @param Methods in this class may be overridden subject to their
- * general contract. Note that annotating methods in concrete
- * subclasses with {@link java.lang.Override @Override} will help
- * ensure that methods are overridden as intended.
- *
- * WARNING: The {@code ElementVisitor} interface
- * implemented by this class may have methods added to it in the
- * future to accommodate new, currently unknown, language structures
- * added to future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new simple element visitor
- * class will also be introduced to correspond to the new language
- * level; this visitor will have different default behavior for the
- * visit method in question. When the new visitor is introduced, all
- * or portions of this visitor may be deprecated.
+ * @apiNote
+ * Methods in this class may be overridden subject to their general
+ * contract.
*
* @param the type of the additional parameter to this visitor's methods. Use {@code Void}
* for visitors that do not need an additional parameter.
*
+ * @see
+ * Compatibility note for subclasses
* @see SimpleElementVisitor6
* @see SimpleElementVisitor8
* @see SimpleElementVisitor9
--- old/src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor8.java 2020-03-13 20:21:28.902000000 -0700
+++ new/src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor8.java 2020-03-13 20:21:28.510000000 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -39,33 +39,17 @@
* passing their arguments to {@code defaultAction}'s corresponding
* parameters.
*
- * Methods in this class may be overridden subject to their
- * general contract. Note that annotating methods in concrete
- * subclasses with {@link java.lang.Override @Override} will help
- * ensure that methods are overridden as intended.
- *
- * WARNING: The {@code ElementVisitor} interface
- * implemented by this class may have methods added to it in the
- * future to accommodate new, currently unknown, language structures
- * added to future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new simple element visitor
- * class will also be introduced to correspond to the new language
- * level; this visitor will have different default behavior for the
- * visit method in question. When the new visitor is introduced, all
- * or portions of this visitor may be deprecated.
+ * @apiNote
+ * Methods in this class may be overridden subject to their general
+ * contract.
*
* @param the type of the additional parameter to this visitor's methods. Use {@code Void}
* for visitors that do not need an additional parameter.
*
+ * @see
+ * Compatibility note for subclasses
* @see SimpleElementVisitor6
* @see SimpleElementVisitor7
* @see SimpleElementVisitor9
--- old/src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor9.java 2020-03-13 20:21:29.810000000 -0700
+++ new/src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor9.java 2020-03-13 20:21:29.398000000 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -40,33 +40,17 @@
* passing their arguments to {@code defaultAction}'s corresponding
* parameters.
*
- * Methods in this class may be overridden subject to their
- * general contract. Note that annotating methods in concrete
- * subclasses with {@link java.lang.Override @Override} will help
- * ensure that methods are overridden as intended.
- *
- * WARNING: The {@code ElementVisitor} interface
- * implemented by this class may have methods added to it in the
- * future to accommodate new, currently unknown, language structures
- * added to future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new simple element visitor
- * class will also be introduced to correspond to the new language
- * level; this visitor will have different default behavior for the
- * visit method in question. When the new visitor is introduced, all
- * or portions of this visitor may be deprecated.
+ * @apiNote
+ * Methods in this class may be overridden subject to their general
+ * contract.
*
* @param the type of the additional parameter to this visitor's methods. Use {@code Void}
* for visitors that do not need an additional parameter.
*
+ * @see
+ * Compatibility note for subclasses
* @see SimpleElementVisitor6
* @see SimpleElementVisitor7
* @see SimpleElementVisitor8
--- old/src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor14.java 2020-03-13 20:21:30.734000000 -0700
+++ new/src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor14.java 2020-03-13 20:21:30.250000000 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2019, 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
@@ -47,33 +47,17 @@
* passing their arguments to {@code defaultAction}'s corresponding
* parameters.
*
- * Methods in this class may be overridden subject to their
- * general contract. Note that annotating methods in concrete
- * subclasses with {@link java.lang.Override @Override} will help
- * ensure that methods are overridden as intended.
- *
- * WARNING: The {@code ElementVisitor} interface
- * implemented by this class may have methods added to it in the
- * future to accommodate new, currently unknown, language structures
- * added to future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new simple element visitor
- * class will also be introduced to correspond to the new language
- * level; this visitor will have different default behavior for the
- * visit method in question. When the new visitor is introduced, all
- * or portions of this visitor may be deprecated.
+ * @apiNote
+ * Methods in this class may be overridden subject to their general
+ * contract.
*
* @param the type of the additional parameter to this visitor's methods. Use {@code Void}
* for visitors that do not need an additional parameter.
*
+ * @see
+ * Compatibility note for subclasses
* @see SimpleElementVisitor6
* @see SimpleElementVisitor7
* @see SimpleElementVisitor8
--- old/src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitor6.java 2020-03-13 20:21:31.726000000 -0700
+++ new/src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitor6.java 2020-03-13 20:21:31.254000000 -0700
@@ -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
@@ -42,27 +42,29 @@
* For constructs introduced in {@code RELEASE_7} and later, {@code
* visitUnknown} is called instead.
*
- * Methods in this class may be overridden subject to their
- * general contract. Note that annotating methods in concrete
- * subclasses with {@link java.lang.Override @Override} will help
- * ensure that methods are overridden as intended.
- *
- * WARNING: The {@code TypeVisitor} interface implemented
- * by this class may have methods added to it in the future to
- * accommodate new, currently unknown, language structures added to
- * future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
+ *
+ * @apiNote
+ * Methods in this class may be overridden subject to their general
+ * contract.
+ *
+ * WARNING: The {@code
+ * TypeVisitor} interface implemented by this class may have methods
+ * added to it in the future to accommodate new, currently unknown,
+ * language structures added to future versions of the Java™
+ * programming language. Therefore, methods whose names begin with
+ * {@code "visit"} may be added to this class in the future; to avoid
+ * incompatibilities, classes and subclasses which extend this class
+ * should not declare any instance methods with names beginning with
+ * {@code "visit"}. When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new simple type visitor
- * class will also be introduced to correspond to the new language
- * level; this visitor will have different default behavior for the
- * visit method in question. When the new visitor is introduced, all
- * or portions of this visitor may be deprecated.
+ * implementation in this class will be to directly or indirectly call
+ * the {@link #visitUnknown visitUnknown} method. A new simple type
+ * visitor class will also be introduced to correspond to the new
+ * language level; this visitor will have different default behavior
+ * for the visit method in question. When a new visitor is
+ * introduced, portions of this visitor class may be deprecated,
+ * including its constructors.
*
* @param Methods in this class may be overridden subject to their
- * general contract. Note that annotating methods in concrete
- * subclasses with {@link java.lang.Override @Override} will help
- * ensure that methods are overridden as intended.
- *
- * WARNING: The {@code TypeVisitor} interface implemented
- * by this class may have methods added to it in the future to
- * accommodate new, currently unknown, language structures added to
- * future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new simple type visitor
- * class will also be introduced to correspond to the new language
- * level; this visitor will have different default behavior for the
- * visit method in question. When the new visitor is introduced, all
- * or portions of this visitor may be deprecated.
+ * @apiNote
+ * Methods in this class may be overridden subject to their general
+ * contract.
*
* @param Methods in this class may be overridden subject to their
- * general contract. Note that annotating methods in concrete
- * subclasses with {@link java.lang.Override @Override} will help
- * ensure that methods are overridden as intended.
- *
- * WARNING: The {@code TypeVisitor} interface implemented
- * by this class may have methods added to it in the future to
- * accommodate new, currently unknown, language structures added to
- * future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new simple type visitor
- * class will also be introduced to correspond to the new language
- * level; this visitor will have different default behavior for the
- * visit method in question. When the new visitor is introduced, all
- * or portions of this visitor may be deprecated.
+ * @apiNote
+ * Methods in this class may be overridden subject to their general
+ * contract.
*
* @param Methods in this class may be overridden subject to their
- * general contract. Note that annotating methods in concrete
- * subclasses with {@link java.lang.Override @Override} will help
- * ensure that methods are overridden as intended.
- *
- * WARNING: The {@code TypeVisitor} interface implemented
- * by this class may have methods added to it in the future to
- * accommodate new, currently unknown, language structures added to
- * future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new simple type visitor
- * class will also be introduced to correspond to the new language
- * level; this visitor will have different default behavior for the
- * visit method in question. When the new visitor is introduced, all
- * or portions of this visitor may be deprecated.
+ * @apiNote
+ * Methods in this class may be overridden subject to their general
+ * contract.
*
* @param Methods in this class may be overridden subject to their
- * general contract. Note that annotating methods in concrete
- * subclasses with {@link java.lang.Override @Override} will help
- * ensure that methods are overridden as intended.
- *
- * WARNING: The {@code TypeVisitor} interface implemented
- * by this class may have methods added to it in the future to
- * accommodate new, currently unknown, language structures added to
- * future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new simple type visitor
- * class will also be introduced to correspond to the new language
- * level; this visitor will have different default behavior for the
- * visit method in question. When the new visitor is introduced, all
- * or portions of this visitor may be deprecated.
+ * @apiNote
+ * Methods in this class may be overridden subject to their general
+ * contract.
*
* @param Methods in this class may be overridden subject to their
- * general contract. Note that annotating methods in concrete
- * subclasses with {@link java.lang.Override @Override} will help
- * ensure that methods are overridden as intended.
- *
- * WARNING: The {@code TypeVisitor} interface implemented
- * by this class may have methods added to it in the future to
- * accommodate new, currently unknown, language structures added to
- * future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
+ * @apiNote
+ * Methods in this class may be overridden subject to their general
+ * contract.
+ *
+ * WARNING: The {@code
+ * TypeVisitor} interface implemented by this class may have methods
+ * added to it or the {@link TypeKind TypeKind enum} used in this
+ * class may have constants added to it in the future to accommodate
+ * new, currently unknown, language structures added to future
+ * versions of the Java™ programming language. Therefore,
+ * methods whose names begin with {@code "visit"} may be added to this
+ * class in the future; to avoid incompatibilities, classes and
+ * subclasses which extend this class should not declare any instance
+ * methods with names beginning with {@code "visit"}. When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new type kind visitor class
- * will also be introduced to correspond to the new language level;
- * this visitor will have different default behavior for the visit
- * method in question. When the new visitor is introduced, all or
- * portions of this visitor may be deprecated.
+ * implementation in this class will be to directly or indirectly call
+ * the {@link #visitUnknown visitUnknown} method. A new type kind
+ * visitor class will also be introduced to correspond to the new
+ * language level; this visitor will have different default behavior
+ * for the visit method in question. When a new visitor is
+ * introduced, portions of this visitor class may be deprecated,
+ * including its constructors.
*
* @param Methods in this class may be overridden subject to their
- * general contract. Note that annotating methods in concrete
- * subclasses with {@link java.lang.Override @Override} will help
- * ensure that methods are overridden as intended.
- *
- * WARNING: The {@code TypeVisitor} interface implemented
- * by this class may have methods added to it in the future to
- * accommodate new, currently unknown, language structures added to
- * future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new type kind visitor class
- * will also be introduced to correspond to the new language level;
- * this visitor will have different default behavior for the visit
- * method in question. When the new visitor is introduced, all or
- * portions of this visitor may be deprecated.
+ * @apiNote
+ * Methods in this class may be overridden subject to their general
+ * contract.
*
* @param Methods in this class may be overridden subject to their
- * general contract. Note that annotating methods in concrete
- * subclasses with {@link java.lang.Override @Override} will help
- * ensure that methods are overridden as intended.
- *
- * WARNING: The {@code TypeVisitor} interface implemented
- * by this class may have methods added to it in the future to
- * accommodate new, currently unknown, language structures added to
- * future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new type kind visitor class
- * will also be introduced to correspond to the new language level;
- * this visitor will have different default behavior for the visit
- * method in question. When the new visitor is introduced, all or
- * portions of this visitor may be deprecated.
+ * @apiNote
+ * Methods in this class may be overridden subject to their general
+ * contract.
*
* @param Methods in this class may be overridden subject to their
- * general contract. Note that annotating methods in concrete
- * subclasses with {@link java.lang.Override @Override} will help
- * ensure that methods are overridden as intended.
- *
- * WARNING: The {@code TypeVisitor} interface implemented
- * by this class may have methods added to it in the future to
- * accommodate new, currently unknown, language structures added to
- * future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new type kind visitor class
- * will also be introduced to correspond to the new language level;
- * this visitor will have different default behavior for the visit
- * method in question. When the new visitor is introduced, all or
- * portions of this visitor may be deprecated.
+ * @apiNote
+ * Methods in this class may be overridden subject to their general
+ * contract.
*
* @param Methods in this class may be overridden subject to their
- * general contract. Note that annotating methods in concrete
- * subclasses with {@link java.lang.Override @Override} will help
- * ensure that methods are overridden as intended.
- *
- * WARNING: The {@code TypeVisitor} interface implemented
- * by this class may have methods added to it in the future to
- * accommodate new, currently unknown, language structures added to
- * future versions of the Java™ programming language.
- * Therefore, methods whose names begin with {@code "visit"} may be
- * added to this class in the future; to avoid incompatibilities,
- * classes which extend this class should not declare any instance
- * methods with names beginning with {@code "visit"}.
- *
- * When such a new visit method is added, the default
- * implementation in this class will be to call the {@link
- * #visitUnknown visitUnknown} method. A new type kind visitor class
- * will also be introduced to correspond to the new language level;
- * this visitor will have different default behavior for the visit
- * method in question. When the new visitor is introduced, all or
- * portions of this visitor may be deprecated.
+ * @apiNote
+ * Methods in this class may be overridden subject to their general
+ * contract.
*
* @param super.visitXyz
, an overriding visit method
* should call {@code scan} with the elements in the desired order.
*
- * super.visitXyz
, an overriding visit method
* should call {@code scan} with the elements in the desired order.
*
- * super.visitXyz
, an overriding visit method
* should call {@code scan} with the elements in the desired order.
*
- * super.visitXyz
, an overriding visit method
* should call {@code scan} with the elements in the desired order.
*
- * super.visitXyz
, an overriding visit method
* should call {@code scan} with the elements in the desired order.
*
- *