JDK 10 RFR of 8191234: TypeKindVisitor needs to handle modules,

joe darcy joe.darcy at oracle.com
Wed Nov 22 18:37:18 UTC 2017


Webrev now with a regression test:

     http://cr.openjdk.java.net/~darcy/8191234.1/

Thanks,

-Joe

On 11/20/2017 10:34 PM, joe darcy wrote:
> Hello,
>
> Please review the patch below and CSR for
>
>     8191234: TypeKindVisitor needs to handle modules
>     CSR: https://bugs.openjdk.java.net/browse/JDK-8191642
>
> The module-related javax.lang.model updates in JDK 9 overlooked adding 
> module support to the TypeKind family of visitors.
>
> The treatment of TypeKind.MODULE is analogous to the how support for 
> ElementKind.RESOURCE_VARIABLE was added in JDK 7 to the ElementKind 
> visitors.
>
> For now treating this fix was noreg-trivial, but I'll concede test are 
> appropriate and write a few if reviewers think they are needed.
>
> Thanks,
>
> -Joe
>
> diff -r 5cc5b8270cad 
> src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor6.java
> --- 
> a/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor6.java 
> Mon Nov 20 20:33:51 2017 -0800
> +++ 
> b/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor6.java 
> Mon Nov 20 22:06:30 2017 -0800
> @@ -257,7 +257,7 @@
>       *
>       * @implSpec This implementation dispatches to the visit method for
>       * the specific {@linkplain TypeKind kind} of pseudo-type:
> -     * {@code VOID}, {@code PACKAGE}, or {@code NONE}.
> +     * {@code VOID}, {@code PACKAGE}, {@code MODULE}, or {@code NONE}.
>       *
>       * @param t {@inheritDoc}
>       * @param p {@inheritDoc}
> @@ -273,6 +273,9 @@
>          case PACKAGE:
>              return visitNoTypeAsPackage(t, p);
>
> +        case MODULE:
> +            return visitNoTypeAsModule(t, p);
> +
>          case NONE:
>              return visitNoTypeAsNone(t, p);
>
> @@ -308,6 +311,21 @@
>      }
>
>      /**
> +     * Visits a {@link TypeKind#MODULE MODULE} pseudo-type.
> +     *
> +     * @implSpec This implementation calls {@code visitUnknown}.
> +     *
> +     * @param t the type to visit
> +     * @param p a visitor-specified parameter
> +     * @return  the result of {@code visitUnknown}
> +     *
> +     * @since 10
> +     */
> +    public R visitNoTypeAsModule(NoType t, P p) {
> +        return visitUnknown(t, p);
> +    }
> +
> +    /**
>       * Visits a {@link TypeKind#NONE NONE} pseudo-type.
>       *
>       * @implSpec This implementation calls {@code defaultAction}.
> diff -r 5cc5b8270cad 
> src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor9.java
> --- 
> a/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor9.java 
> Mon Nov 20 20:33:51 2017 -0800
> +++ 
> b/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor9.java 
> Mon Nov 20 22:06:30 2017 -0800
> @@ -93,4 +93,20 @@
>      protected TypeKindVisitor9(R defaultValue) {
>          super(defaultValue);
>      }
> +
> +    /**
> +     * {@inheritDoc}
> +     *
> +     * @implSpec This implementation calls {@code defaultAction}.
> +     *
> +     * @param t {@inheritDoc}
> +     * @param p {@inheritDoc}
> +     * @return  the result of {@code defaultAction}
> +     *
> +     * @since 10
> +     */
> +    @Override
> +    public R visitNoTypeAsModule(NoType t, P p) {
> +        return defaultAction(t, p);
> +    }
>  }
>



More information about the compiler-dev mailing list