8028543: Add SourceVersion.RELEASE_9

Reviewed-by: jjg
This commit is contained in:
Joe Darcy 2014-01-07 11:43:56 -08:00
parent 8d4ba575b6
commit 6fc7157058
3 changed files with 20 additions and 10 deletions

View File

@ -55,6 +55,7 @@ public enum SourceVersion {
* 1.6: no changes * 1.6: no changes
* 1.7: diamond syntax, try-with-resources, etc. * 1.7: diamond syntax, try-with-resources, etc.
* 1.8: lambda expressions and default methods * 1.8: lambda expressions and default methods
* 1.9: To be determined
*/ */
/** /**
@ -138,7 +139,15 @@ public enum SourceVersion {
* Additions in this release include lambda expressions and default methods. * Additions in this release include lambda expressions and default methods.
* @since 1.8 * @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 // Note that when adding constants for newer releases, the
// behavior of latest() and latestSupported() must be updated too. // behavior of latest() and latestSupported() must be updated too.
@ -149,7 +158,7 @@ public enum SourceVersion {
* @return the latest source version that can be modeled * @return the latest source version that can be modeled
*/ */
public static SourceVersion latest() { public static SourceVersion latest() {
return RELEASE_8; return RELEASE_9;
} }
private static final SourceVersion latestSupported = getLatestSupported(); private static final SourceVersion latestSupported = getLatestSupported();
@ -159,6 +168,8 @@ public enum SourceVersion {
String specVersion = System.getProperty("java.specification.version"); String specVersion = System.getProperty("java.specification.version");
switch (specVersion) { switch (specVersion) {
case "1.9":
return RELEASE_9;
case "1.8": case "1.8":
return RELEASE_8; return RELEASE_8;
case "1.7": case "1.7":
@ -271,7 +282,6 @@ public enum SourceVersion {
* @return {@code true} if {@code s} is a keyword or literal, {@code false} otherwise. * @return {@code true} if {@code s} is a keyword or literal, {@code false} otherwise.
*/ */
public static boolean isKeyword(CharSequence s) { public static boolean isKeyword(CharSequence s) {
String keywordOrLiteral = s.toString(); return keywords.contains(s.toString());
return keywords.contains(keywordOrLiteral);
} }
} }

View File

@ -23,13 +23,13 @@
/* /*
* @test * @test
* @bug 6395981 6458819 7025784 * @bug 6395981 6458819 7025784 8028543
* @summary JavaCompilerTool and Tool must specify version of JLS and JVMS * @summary JavaCompilerTool and Tool must specify version of JLS and JVMS
* @author Peter von der Ah\u00e9 * @author Peter von der Ah\u00e9
* @run main/fail T6395981 * @run main/fail T6395981
* @run main/fail T6395981 RELEASE_3 RELEASE_5 RELEASE_6 * @run main/fail T6395981 RELEASE_3 RELEASE_5 RELEASE_6
* @run main/fail T6395981 RELEASE_0 RELEASE_1 RELEASE_2 RELEASE_3 RELEASE_4 RELEASE_5 RELEASE_6 * @run main/fail T6395981 RELEASE_0 RELEASE_1 RELEASE_2 RELEASE_3 RELEASE_4 RELEASE_5 RELEASE_6
* @run main T6395981 RELEASE_3 RELEASE_4 RELEASE_5 RELEASE_6 RELEASE_7 RELEASE_8 * @run main T6395981 RELEASE_3 RELEASE_4 RELEASE_5 RELEASE_6 RELEASE_7 RELEASE_8 RELEASE_9
*/ */
import java.util.EnumSet; import java.util.EnumSet;

View File

@ -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. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -23,7 +23,7 @@
/* /*
* @test * @test
* @bug 7025809 * @bug 7025809 8028543
* @summary Test latest and latestSupported * @summary Test latest and latestSupported
* @author Joseph D. Darcy * @author Joseph D. Darcy
*/ */
@ -36,8 +36,8 @@ import static javax.lang.model.SourceVersion.*;
*/ */
public class TestSourceVersion { public class TestSourceVersion {
public static void main(String... args) { public static void main(String... args) {
if (SourceVersion.latest() != RELEASE_8 || if (SourceVersion.latest() != RELEASE_9 ||
SourceVersion.latestSupported() != RELEASE_8) SourceVersion.latestSupported() != RELEASE_9)
throw new RuntimeException("Unexpected release value(s) found:\n" + throw new RuntimeException("Unexpected release value(s) found:\n" +
"latest:\t" + SourceVersion.latest() + "\n" + "latest:\t" + SourceVersion.latest() + "\n" +
"latestSupported:\t" + SourceVersion.latestSupported()); "latestSupported:\t" + SourceVersion.latestSupported());