JDK 10 RFR of JDK-8193194: Update javax.lang.model.util visitors for 10
joe darcy
joe.darcy at oracle.com
Thu Dec 7 17:29:10 UTC 2017
Hello,
The javax.lang.model API was introduced in JDK 6 via JSR 269. In JDK 7,
8, and 9 new sets of concrete visitors were added in the
javax.lang.model.util package. In JDKs 7, 8, and 9, there were new
language changes that required new modeling constructs. There are no
such changes in JDK 10. Therefore, a new set of visitors will not be
added for JDK 10. However, some minor updates to the JDK 9 visitors
should be made to indicate they cover both JDK 9 and JDK 10 constructs.
Please review the patch below which implements the updates.
-Joe
diff -r 56d3576aadd5
src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor9.java
---
a/src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor9.java
Mon Dec 04 19:12:57 2017 +0100
+++
b/src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor9.java
Thu Dec 07 09:28:13 2017 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights
reserved.
+ * Copyright (c) 2011, 2017, 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
@@ -32,7 +32,7 @@
/**
* A skeletal visitor for annotation values with default behavior
* appropriate for the {@link SourceVersion#RELEASE_9 RELEASE_9}
- * source version.
+ * and {@link SourceVersion#RELEASE_10 RELEASE_10} source versions.
*
* <p> <b>WARNING:</b> The {@code AnnotationValueVisitor} interface
* implemented by this class may have methods added to it in the
@@ -59,7 +59,7 @@
* @see AbstractAnnotationValueVisitor8
* @since 9
*/
- at SupportedSourceVersion(RELEASE_9)
+ at SupportedSourceVersion(RELEASE_10)
public abstract class AbstractAnnotationValueVisitor9<R, P> extends
AbstractAnnotationValueVisitor8<R, P> {
/**
diff -r 56d3576aadd5
src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor9.java
---
a/src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor9.java
Mon Dec 04 19:12:57 2017 +0100
+++
b/src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor9.java
Thu Dec 07 09:28:13 2017 -0800
@@ -34,7 +34,7 @@
/**
* A skeletal visitor of program elements with default behavior
* appropriate for the {@link SourceVersion#RELEASE_9 RELEASE_9}
- * source version.
+ * and {@link SourceVersion#RELEASE_10 RELEASE_10} source versions.
*
* <p> <b>WARNING:</b> The {@code ElementVisitor} interface
* implemented by this class may have methods added to it in the
@@ -65,7 +65,7 @@
* @since 9
* @spec JPMS
*/
- at SupportedSourceVersion(RELEASE_9)
+ at SupportedSourceVersion(RELEASE_10)
public abstract class AbstractElementVisitor9<R, P> extends
AbstractElementVisitor8<R, P> {
/**
* Constructor for concrete subclasses to call.
diff -r 56d3576aadd5
src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor9.java
---
a/src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor9.java
Mon Dec 04 19:12:57 2017 +0100
+++
b/src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor9.java
Thu Dec 07 09:28:13 2017 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights
reserved.
+ * Copyright (c) 2011, 2017, 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
@@ -27,13 +27,13 @@
import javax.annotation.processing.SupportedSourceVersion;
import javax.lang.model.type.*;
-
+import javax.lang.model.SourceVersion;
import static javax.lang.model.SourceVersion.*;
/**
* A skeletal visitor of types with default behavior appropriate for
- * the {@link javax.lang.model.SourceVersion#RELEASE_9 RELEASE_9}
- * source version.
+ * the {@link SourceVersion#RELEASE_9 RELEASE_9}
+ * and {@link SourceVersion#RELEASE_10 RELEASE_10} source versions.
*
* <p> <b>WARNING:</b> The {@code TypeVisitor} interface implemented
* by this class may have methods added to it in the future to
@@ -63,7 +63,7 @@
* @see AbstractTypeVisitor8
* @since 9
*/
- at SupportedSourceVersion(RELEASE_9)
+ at SupportedSourceVersion(RELEASE_10)
public abstract class AbstractTypeVisitor9<R, P> extends
AbstractTypeVisitor8<R, P> {
/**
* Constructor for concrete subclasses to call.
diff -r 56d3576aadd5
src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor9.java
---
a/src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor9.java
Mon Dec 04 19:12:57 2017 +0100
+++
b/src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor9.java
Thu Dec 07 09:28:13 2017 -0800
@@ -33,7 +33,8 @@
/**
* A visitor of program elements based on their {@linkplain
* ElementKind kind} with default behavior appropriate for the {@link
- * SourceVersion#RELEASE_9 RELEASE_9} source version. For {@linkplain
+ * SourceVersion#RELEASE_9 RELEASE_9} and {@link
+ * SourceVersion#RELEASE_10 RELEASE_10} source versions. For {@linkplain
* Element elements} <code><i>Xyz</i></code> that may have more than one
* kind, the <code>visit<i>Xyz</i></code> methods in this class delegate
* to the <code>visit<i>Xyz</i>As<i>Kind</i></code> method
corresponding to the
@@ -77,7 +78,7 @@
* @since 9
* @spec JPMS
*/
- at SupportedSourceVersion(RELEASE_9)
+ at SupportedSourceVersion(RELEASE_10)
public class ElementKindVisitor9<R, P> extends ElementKindVisitor8<R, P> {
/**
* Constructor for concrete subclasses; uses {@code null} for the
diff -r 56d3576aadd5
src/java.compiler/share/classes/javax/lang/model/util/ElementScanner9.java
---
a/src/java.compiler/share/classes/javax/lang/model/util/ElementScanner9.java
Mon Dec 04 19:12:57 2017 +0100
+++
b/src/java.compiler/share/classes/javax/lang/model/util/ElementScanner9.java
Thu Dec 07 09:28:13 2017 -0800
@@ -34,7 +34,8 @@
/**
* A scanning visitor of program elements with default behavior
* appropriate for the {@link SourceVersion#RELEASE_9 RELEASE_9}
- * source version. The <code>visit<i>Xyz</i></code> methods in this
+ * and {@link SourceVersion#RELEASE_10 RELEASE_10} source versions.
+ * The <code>visit<i>Xyz</i></code> methods in this
* class scan their component elements by calling {@code scan} on
* their {@linkplain Element#getEnclosedElements enclosed elements},
* {@linkplain ExecutableElement#getParameters parameters}, etc., as
@@ -90,7 +91,7 @@
* @since 9
* @spec JPMS
*/
- at SupportedSourceVersion(RELEASE_9)
+ at SupportedSourceVersion(RELEASE_10)
public class ElementScanner9<R, P> extends ElementScanner8<R, P> {
/**
* Constructor for concrete subclasses; uses {@code null} for the
diff -r 56d3576aadd5
src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor9.java
---
a/src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor9.java
Mon Dec 04 19:12:57 2017 +0100
+++
b/src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor9.java
Thu Dec 07 09:28:13 2017 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights
reserved.
+ * Copyright (c) 2011, 2017, 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
@@ -32,7 +32,8 @@
/**
* A simple visitor for annotation values with default behavior
* appropriate for the {@link SourceVersion#RELEASE_9 RELEASE_9}
- * source version. Visit methods call {@link #defaultAction
+ * and {@link SourceVersion#RELEASE_10 RELEASE_10} source versions.
+ * Visit methods call {@link #defaultAction
* defaultAction} passing their arguments to {@code defaultAction}'s
* corresponding parameters.
*
@@ -66,7 +67,7 @@
* @see SimpleAnnotationValueVisitor8
* @since 9
*/
- at SupportedSourceVersion(RELEASE_9)
+ at SupportedSourceVersion(RELEASE_10)
public class SimpleAnnotationValueVisitor9<R, P> extends
SimpleAnnotationValueVisitor8<R, P> {
/**
* Constructor for concrete subclasses; uses {@code null} for the
diff -r 56d3576aadd5
src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor9.java
---
a/src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor9.java
Mon Dec 04 19:12:57 2017 +0100
+++
b/src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor9.java
Thu Dec 07 09:28:13 2017 -0800
@@ -33,7 +33,7 @@
/**
* A simple visitor of program elements with default behavior
* appropriate for the {@link SourceVersion#RELEASE_9 RELEASE_9}
- * source version.
+ * and {@link SourceVersion#RELEASE_10 RELEASE_10} source versions.
*
* Visit methods corresponding to {@code RELEASE_9} and earlier
* language constructs call {@link #defaultAction defaultAction},
@@ -73,7 +73,7 @@
* @since 9
* @spec JPMS
*/
- at SupportedSourceVersion(RELEASE_9)
+ at SupportedSourceVersion(RELEASE_10)
public class SimpleElementVisitor9<R, P> extends
SimpleElementVisitor8<R, P> {
/**
* Constructor for concrete subclasses; uses {@code null} for the
diff -r 56d3576aadd5
src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitor9.java
---
a/src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitor9.java
Mon Dec 04 19:12:57 2017 +0100
+++
b/src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitor9.java
Thu Dec 07 09:28:13 2017 -0800
@@ -32,7 +32,8 @@
/**
* A simple visitor of types with default behavior appropriate for the
- * {@link SourceVersion#RELEASE_9 RELEASE_9} source version.
+ * {@link SourceVersion#RELEASE_9 RELEASE_9} and
+ * {@link SourceVersion#RELEASE_10 RELEASE_10} source versions.
*
* Visit methods corresponding to {@code RELEASE_9} and earlier
* language constructs call {@link #defaultAction defaultAction},
@@ -71,7 +72,7 @@
* @see SimpleTypeVisitor7
* @since 9
*/
- at SupportedSourceVersion(RELEASE_9)
+ at SupportedSourceVersion(RELEASE_10)
public class SimpleTypeVisitor9<R, P> extends SimpleTypeVisitor8<R, P> {
/**
* Constructor for concrete subclasses; uses {@code null} for the
diff -r 56d3576aadd5
src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor9.java
---
a/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor9.java
Mon Dec 04 19:12:57 2017 +0100
+++
b/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor9.java
Thu Dec 07 09:28:13 2017 -0800
@@ -33,7 +33,8 @@
/**
* A visitor of types based on their {@linkplain TypeKind kind} with
* default behavior appropriate for the {@link SourceVersion#RELEASE_9
- * RELEASE_9} source version. For {@linkplain
+ * RELEASE_9} and {@link SourceVersion#RELEASE_10 RELEASE_10} source
+ * versions. For {@linkplain
* TypeMirror types} <code><i>Xyz</i></code> that may have more than one
* kind, the <code>visit<i>Xyz</i></code> methods in this class delegate
* to the <code>visit<i>Xyz</i>As<i>Kind</i></code> method
corresponding to the
@@ -74,7 +75,7 @@
* @see TypeKindVisitor8
* @since 9
*/
- at SupportedSourceVersion(RELEASE_9)
+ at SupportedSourceVersion(RELEASE_10)
public class TypeKindVisitor9<R, P> extends TypeKindVisitor8<R, P> {
/**
* Constructor for concrete subclasses to call; uses {@code null}
More information about the compiler-dev
mailing list