JDK 9 RFR for JDK-8028543 Add SourceVersion.RELEASE_9
Jonathan Gibbons
jonathan.gibbons at oracle.com
Fri Dec 6 14:19:13 PST 2013
Looks good.
-- Jon
On 12/06/2013 02:11 PM, Joseph Darcy wrote:
> Hello,
>
> With JDK 9 going to get underway soon, please review the patch below
> to address
>
> JDK-8028543 Add SourceVersion.RELEASE_9
> https://bugs.openjdk.java.net/browse/JDK-8028543
>
> http://cr.openjdk.java.net/~darcy/8028543.0/
>
> Thanks,
>
> -Joe
>
> --- old/src/share/classes/javax/lang/model/SourceVersion.java
> 2013-12-06 14:06:51.000000000 -0800
> +++ new/src/share/classes/javax/lang/model/SourceVersion.java
> 2013-12-06 14:06:51.000000000 -0800
> @@ -55,6 +55,7 @@
> * 1.6: no changes
> * 1.7: diamond syntax, try-with-resources, etc.
> * 1.8: lambda expressions and default methods
> + * 1.9: To be determined
> */
>
> /**
> @@ -138,7 +139,15 @@
> * Additions in this release include lambda expressions and
> default methods.
> * @since 1.8
> */
> - RELEASE_8;
> + RELEASE_8,
> +
> + /**
> + * The version recognized by the Java Platform, Standard Edition
> + * 9.
> + *
> + * @since 1.9
> + */
> + RELEASE_9;
>
> // Note that when adding constants for newer releases, the
> // behavior of latest() and latestSupported() must be updated too.
> @@ -149,21 +158,23 @@
> * @return the latest source version that can be modeled
> */
> public static SourceVersion latest() {
> - return RELEASE_8;
> + return RELEASE_9;
> }
>
> private static final SourceVersion latestSupported =
> getLatestSupported();
>
> private static SourceVersion getLatestSupported() {
> try {
> - String specVersion =
> System.getProperty("java.specification.version");
> -
> - if ("1.8".equals(specVersion))
> + switch (System.getProperty("java.specification.version")) {
> + case "1.9":
> + return RELEASE_9;
> + case "1.8":
> return RELEASE_8;
> - else if("1.7".equals(specVersion))
> + case "1.7":
> return RELEASE_7;
> - else if("1.6".equals(specVersion))
> + case "1.6":
> return RELEASE_6;
> + }
> } catch (SecurityException se) {}
>
> return RELEASE_5;
> @@ -269,7 +280,6 @@
> * @return {@code true} if {@code s} is a keyword or literal,
> {@code false} otherwise.
> */
> public static boolean isKeyword(CharSequence s) {
> - String keywordOrLiteral = s.toString();
> - return keywords.contains(keywordOrLiteral);
> + return keywords.contains(s.toString());
> }
> }
> --- old/test/tools/javac/processing/model/TestSourceVersion.java
> 2013-12-06 14:06:51.000000000 -0800
> +++ new/test/tools/javac/processing/model/TestSourceVersion.java
> 2013-12-06 14:06:51.000000000 -0800
> @@ -1,5 +1,5 @@
> /*
> - * Copyright (c) 2011, Oracle and/or its affiliates. All rights
> reserved.
> + * Copyright (c) 2011, 2013, 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
> @@ -23,7 +23,7 @@
>
> /*
> * @test
> - * @bug 7025809
> + * @bug 7025809 8028543
> * @summary Test latest and latestSupported
> * @author Joseph D. Darcy
> */
> @@ -36,8 +36,8 @@
> */
> public class TestSourceVersion {
> public static void main(String... args) {
> - if (SourceVersion.latest() != RELEASE_8 ||
> - SourceVersion.latestSupported() != RELEASE_8)
> + if (SourceVersion.latest() != RELEASE_9 ||
> + SourceVersion.latestSupported() != RELEASE_9)
> throw new RuntimeException("Unexpected release value(s)
> found:\n" +
> "latest:\t" +
> SourceVersion.latest() + "\n" +
> "latestSupported:\t" +
> SourceVersion.latestSupported());
>
More information about the compiler-dev
mailing list