JDK 15 RFR of JDK-8239478: Make specification of SourceVersion.isName explicit for dotted names

Joe Darcy joe.darcy at oracle.com
Wed Feb 19 17:56:32 UTC 2020


Hello,

Please review the spec clarification to address

     JDK-8239478: Make specification of SourceVersion.isName explicit 
for dotted names
     http://cr.openjdk.java.net/~darcy/8239478.0/

Patch below.

Thanks,

-Joe

--- 
old/src/java.compiler/share/classes/javax/lang/model/SourceVersion.java 
2020-02-19 09:40:00.728000000 -0800
+++ 
new/src/java.compiler/share/classes/javax/lang/model/SourceVersion.java 
2020-02-19 09:40:00.420000000 -0800
@@ -287,6 +287,8 @@
       * @return {@code true} if this string is a
       * syntactically valid identifier or keyword, {@code false}
       * otherwise.
+     *
+     * @jls 3.8 Identifiers
       */
      public static boolean isIdentifier(CharSequence name) {
          String id = name.toString();
@@ -311,9 +313,16 @@

      /**
       * Returns whether or not {@code name} is a syntactically valid
-     * qualified name in the latest source version.  Unlike {@link
+     * qualified name in the latest source version.
+     *
+     * Syntactically, a qualified name is a sequence of identifiers
+     * separated by period characters ("{@code .}"). This method
+     * splits the input string into period-separated segments and
+     * applies checks to each segment in turn.
+     *
+     * Unlike {@link
       * #isIdentifier isIdentifier}, this method returns {@code false}
-     * for keywords, boolean literals, and the null literal.
+     * for keywords, boolean literals, and the null literal in any segment.
       *
       * This method returns {@code true} for <i>restricted
       * keywords</i> and <i>restricted identifiers</i>
@@ -330,9 +339,16 @@

      /**
       * Returns whether or not {@code name} is a syntactically valid
-     * qualified name in the given source version.  Unlike {@link
+     * qualified name in the given source version.
+     *
+     * Syntactically, a qualified name is a sequence of identifiers
+     * separated by period characters ("{@code .}"). This method
+     * splits the input string into period-separated segments and
+     * applies checks to each segment in turn.
+     *
+     * Unlike {@link
       * #isIdentifier isIdentifier}, this method returns {@code false}
-     * for keywords, boolean literals, and the null literal.
+     * for keywords, boolean literals, and the null literal in any segment.
       *
       * This method returns {@code true} for <i>restricted
       * keywords</i> and <i>restricted identifiers</i>



More information about the compiler-dev mailing list