--- 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 return type of this visitor's methods * @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 return type of this visitor's methods * @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 return type of this visitor's methods * @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 return type of this visitor's methods * @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 return type of this visitor's methods * @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 the return type of this visitor's methods. Use {@link * Void} for visitors that do not need to return results. --- old/src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor7.java 2020-03-13 20:21:07.034000000 -0700 +++ new/src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor7.java 2020-03-13 20:21:06.678000000 -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 @@ -35,29 +35,14 @@ * appropriate for the {@link SourceVersion#RELEASE_7 RELEASE_7} * 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 return type of this visitor's methods. Use {@link * Void} for visitors that do not need to return results. * @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 return type of this visitor's methods. Use {@link * Void} for visitors that do not need to return results. * @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 return type of this visitor's methods. Use {@link * Void} for visitors that do not need to return results. * @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 return type of this visitor's methods. Use {@link * Void} for visitors that do not need to return results. * @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 the return type of this visitor's methods. Use {@link * Void} for visitors that do not need to return results. --- old/src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor7.java 2020-03-13 20:21:11.162000000 -0700 +++ new/src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor7.java 2020-03-13 20:21:10.810000000 -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 @@ -35,29 +35,14 @@ * the {@link javax.lang.model.SourceVersion#RELEASE_7 RELEASE_7} * 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 return type of this visitor's methods. Use {@link * Void} for visitors that do not need to return results. * @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 return type of this visitor's methods. Use {@link * Void} for visitors that do not need to return results. * @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 return type of this visitor's methods. Use {@link * Void} for visitors that do not need to return results. * @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 return type of this visitor's methods. Use {@link * Void} for visitors that do not need to return results. * @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 the return type of this visitor's methods. Use {@link * Void} for visitors that do not need to return results. --- old/src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor7.java 2020-03-13 20:21:15.106000000 -0700 +++ new/src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor7.java 2020-03-13 20:21:14.746000000 -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 @@ -41,29 +41,9 @@ * 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"}. - * - *

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 the return type of this visitor's methods. Use {@link * Void} for visitors that do not need to return results. @@ -71,6 +51,8 @@ * methods. Use {@code Void} for visitors that do not need an * additional parameter. * + * @see + * Compatibility note for subclasses * @see ElementKindVisitor6 * @see ElementKindVisitor8 * @see ElementKindVisitor9 --- old/src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor8.java 2020-03-13 20:21:15.838000000 -0700 +++ new/src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor8.java 2020-03-13 20:21:15.486000000 -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 @@ -41,29 +41,9 @@ * 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"}. - * - *

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 the return type of this visitor's methods. Use {@link * Void} for visitors that do not need to return results. @@ -71,6 +51,8 @@ * methods. Use {@code Void} for visitors that do not need an * additional parameter. * + * @see + * Compatibility note for subclasses * @see ElementKindVisitor6 * @see ElementKindVisitor7 * @see ElementKindVisitor9 --- old/src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor9.java 2020-03-13 20:21:16.630000000 -0700 +++ new/src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor9.java 2020-03-13 20:21:16.266000000 -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 @@ -44,29 +44,9 @@ * 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"}. - * - *

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 the return type of this visitor's methods. Use {@link * Void} for visitors that do not need to return results. @@ -74,6 +54,8 @@ * methods. Use {@code Void} for visitors that do not need an * additional parameter. * + * @see + * Compatibility note for subclasses * @see ElementKindVisitor6 * @see ElementKindVisitor7 * @see ElementKindVisitor8 --- old/src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor14.java 2020-03-13 20:21:17.562000000 -0700 +++ new/src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor14.java 2020-03-13 20:21:17.070000000 -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 @@ -50,29 +50,9 @@ * 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"}. - * - *

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 the return type of this visitor's methods. Use {@link * Void} for visitors that do not need to return results. @@ -80,6 +60,8 @@ * methods. Use {@code Void} for visitors that do not need an * additional parameter. * + * @see + * Compatibility note for subclasses * @see ElementKindVisitor6 * @see ElementKindVisitor7 * @see ElementKindVisitor8 --- old/src/java.compiler/share/classes/javax/lang/model/util/ElementScanner6.java 2020-03-13 20:21:18.362000000 -0700 +++ new/src/java.compiler/share/classes/javax/lang/model/util/ElementScanner6.java 2020-03-13 20:21:17.998000000 -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 @@ -56,27 +56,26 @@ * calling super.visitXyz, an overriding visit method * should call {@code scan} with the elements in the desired order. * - *

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 the return type of this visitor's methods. Use {@link * Void} for visitors that do not need to return results. --- old/src/java.compiler/share/classes/javax/lang/model/util/ElementScanner7.java 2020-03-13 20:21:19.138000000 -0700 +++ new/src/java.compiler/share/classes/javax/lang/model/util/ElementScanner7.java 2020-03-13 20:21:18.762000000 -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 @@ -56,27 +56,9 @@ * calling super.visitXyz, an overriding visit method * should call {@code scan} with the elements in the desired order. * - *

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 the return type of this visitor's methods. Use {@link * Void} for visitors that do not need to return results. @@ -84,6 +66,7 @@ * methods. Use {@code Void} for visitors that do not need an * additional parameter. * + * @see Compatibility note for subclasses * @see ElementScanner6 * @see ElementScanner8 * @see ElementScanner9 --- old/src/java.compiler/share/classes/javax/lang/model/util/ElementScanner8.java 2020-03-13 20:21:19.914000000 -0700 +++ new/src/java.compiler/share/classes/javax/lang/model/util/ElementScanner8.java 2020-03-13 20:21:19.494000000 -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 @@ -56,27 +56,9 @@ * calling super.visitXyz, an overriding visit method * should call {@code scan} with the elements in the desired order. * - *

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 the return type of this visitor's methods. Use {@link * Void} for visitors that do not need to return results. @@ -84,6 +66,7 @@ * methods. Use {@code Void} for visitors that do not need an * additional parameter. * + * @see Compatibility note for subclasses * @see ElementScanner6 * @see ElementScanner7 * @see ElementScanner9 --- old/src/java.compiler/share/classes/javax/lang/model/util/ElementScanner9.java 2020-03-13 20:21:20.798000000 -0700 +++ new/src/java.compiler/share/classes/javax/lang/model/util/ElementScanner9.java 2020-03-13 20:21:20.374000000 -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 @@ -58,27 +58,9 @@ * calling super.visitXyz, an overriding visit method * should call {@code scan} with the elements in the desired order. * - *

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 the return type of this visitor's methods. Use {@link * Void} for visitors that do not need to return results. @@ -86,6 +68,7 @@ * methods. Use {@code Void} for visitors that do not need an * additional parameter. * + * @see Compatibility note for subclasses * @see ElementScanner6 * @see ElementScanner7 * @see ElementScanner8 --- old/src/java.compiler/share/classes/javax/lang/model/util/ElementScanner14.java 2020-03-13 20:21:21.766000000 -0700 +++ new/src/java.compiler/share/classes/javax/lang/model/util/ElementScanner14.java 2020-03-13 20:21:21.374000000 -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 @@ -66,27 +66,9 @@ * calling super.visitXyz, an overriding visit method * should call {@code scan} with the elements in the desired order. * - *

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 the return type of this visitor's methods. Use {@link * Void} for visitors that do not need to return results. @@ -94,6 +76,7 @@ * methods. Use {@code Void} for visitors that do not need an * additional parameter. * + * @see Compatibility note for subclasses * @see ElementScanner6 * @see ElementScanner7 * @see ElementScanner8 --- old/src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor6.java 2020-03-13 20:21:22.730000000 -0700 +++ new/src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor6.java 2020-03-13 20:21:22.238000000 -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 @@ -41,27 +41,28 @@ * #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"}. + * @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 return type of this visitor's methods * @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 return type of this visitor's methods * @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 return type of this visitor's methods * @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 return type of this visitor's methods * @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 return type of this visitor's methods * @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 the return type of this visitor's methods. Use {@code Void} * for visitors that do not need to return results. --- old/src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor7.java 2020-03-13 20:21:28.002000000 -0700 +++ new/src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor7.java 2020-03-13 20:21:27.554000000 -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 @@ -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 return type of this visitor's methods. Use {@code Void} * for visitors that do not need to return results. * @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 return type of this visitor's methods. Use {@code Void} * for visitors that do not need to return results. * @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 return type of this visitor's methods. Use {@code Void} * for visitors that do not need to return results. * @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 return type of this visitor's methods. Use {@code Void} * for visitors that do not need to return results. * @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 the return type of this visitor's methods. Use {@link * Void} for visitors that do not need to return results. --- old/src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitor7.java 2020-03-13 20:21:32.742000000 -0700 +++ new/src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitor7.java 2020-03-13 20:21:32.210000000 -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 @@ -39,27 +39,9 @@ * 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 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 the return type of this visitor's methods. Use {@link * Void} for visitors that do not need to return results. @@ -67,6 +49,8 @@ * methods. Use {@code Void} for visitors that do not need an * additional parameter. * + * @see + * Compatibility note for subclasses * @see SimpleTypeVisitor6 * @see SimpleTypeVisitor8 * @see SimpleTypeVisitor9 --- old/src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitor8.java 2020-03-13 20:21:33.814000000 -0700 +++ new/src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitor8.java 2020-03-13 20:21:33.322000000 -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,27 +39,9 @@ * 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 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 the return type of this visitor's methods. Use {@link * Void} for visitors that do not need to return results. @@ -67,6 +49,8 @@ * methods. Use {@code Void} for visitors that do not need an * additional parameter. * + * @see + * Compatibility note for subclasses * @see SimpleTypeVisitor6 * @see SimpleTypeVisitor7 * @see SimpleTypeVisitor9 --- old/src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitor9.java 2020-03-13 20:21:34.750000000 -0700 +++ new/src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitor9.java 2020-03-13 20:21:34.338000000 -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,27 +40,9 @@ * 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 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 the return type of this visitor's methods. Use {@link * Void} for visitors that do not need to return results. @@ -68,6 +50,8 @@ * methods. Use {@code Void} for visitors that do not need an * additional parameter. * + * @see + * Compatibility note for subclasses * @see SimpleTypeVisitor6 * @see SimpleTypeVisitor7 * @see SimpleTypeVisitor8 --- old/src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitor14.java 2020-03-13 20:21:35.842000000 -0700 +++ new/src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitor14.java 2020-03-13 20:21:35.278000000 -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 @@ -38,27 +38,9 @@ * 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 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 the return type of this visitor's methods. Use {@link * Void} for visitors that do not need to return results. @@ -66,6 +48,8 @@ * methods. Use {@code Void} for visitors that do not need an * additional parameter. * + * @see + * Compatibility note for subclasses * @see SimpleTypeVisitor6 * @see SimpleTypeVisitor7 * @see SimpleTypeVisitor8 --- old/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor6.java 2020-03-13 20:21:37.122000000 -0700 +++ new/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor6.java 2020-03-13 20:21:36.478000000 -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 @@ -41,27 +41,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 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 the return type of this visitor's methods. Use {@link * Void} for visitors that do not need to return results. --- old/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor7.java 2020-03-13 20:21:38.126000000 -0700 +++ new/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor7.java 2020-03-13 20:21:37.694000000 -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 @@ -41,27 +41,9 @@ * 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 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 the return type of this visitor's methods. Use {@link * Void} for visitors that do not need to return results. @@ -69,6 +51,8 @@ * methods. Use {@code Void} for visitors that do not need an * additional parameter. * + * @see + * Compatibility note for subclasses * @see TypeKindVisitor6 * @see TypeKindVisitor8 * @see TypeKindVisitor9 --- old/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor8.java 2020-03-13 20:21:39.026000000 -0700 +++ new/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor8.java 2020-03-13 20:21:38.610000000 -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 @@ -41,27 +41,9 @@ * 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 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 the return type of this visitor's methods. Use {@link * Void} for visitors that do not need to return results. @@ -69,6 +51,8 @@ * methods. Use {@code Void} for visitors that do not need an * additional parameter. * + * @see + * Compatibility note for subclasses * @see TypeKindVisitor6 * @see TypeKindVisitor7 * @see TypeKindVisitor9 --- old/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor9.java 2020-03-13 20:21:40.126000000 -0700 +++ new/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor9.java 2020-03-13 20:21:39.710000000 -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 @@ -44,27 +44,9 @@ * 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 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 the return type of this visitor's methods. Use {@link * Void} for visitors that do not need to return results. @@ -72,6 +54,8 @@ * methods. Use {@code Void} for visitors that do not need an * additional parameter. * + * @see + * Compatibility note for subclasses * @see TypeKindVisitor6 * @see TypeKindVisitor7 * @see TypeKindVisitor8 --- old/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor14.java 2020-03-13 20:21:41.050000000 -0700 +++ new/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor14.java 2020-03-13 20:21:40.598000000 -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 @@ -43,27 +43,9 @@ * 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 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 the return type of this visitor's methods. Use {@link * Void} for visitors that do not need to return results. @@ -71,6 +53,8 @@ * methods. Use {@code Void} for visitors that do not need an * additional parameter. * + * @see + * Compatibility note for subclasses * @see TypeKindVisitor6 * @see TypeKindVisitor7 * @see TypeKindVisitor8