< prev index next >

test/tools/javac/processing/model/TestSourceVersion.java

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2011, 2015, 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 * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2011, 2016, 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 * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 21,47 **** * questions. */ /* * @test ! * @bug 7025809 8028543 ! * @summary Test latest and latestSupported * @author Joseph D. Darcy * @modules java.compiler * jdk.compiler */ import javax.lang.model.SourceVersion; import static javax.lang.model.SourceVersion.*; /** * Verify latest[Supported] behavior. */ public class TestSourceVersion { public static void main(String... args) { 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()); } } --- 21,83 ---- * questions. */ /* * @test ! * @bug 7025809 8028543 6415644 ! * @summary Test latest, latestSupported, underscore as keyword, etc. * @author Joseph D. Darcy * @modules java.compiler * jdk.compiler */ + import java.util.*; import javax.lang.model.SourceVersion; import static javax.lang.model.SourceVersion.*; /** * Verify latest[Supported] behavior. */ public class TestSourceVersion { public static void main(String... args) { + testLatestSupported(); + testVersionVaryingKeywords(); + } + + private static void testLatestSupported() { 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()); } + + private static void testVersionVaryingKeywords() { + Map<String, SourceVersion> keyWordStart = + Map.of("strictfp", RELEASE_2, + "assert", RELEASE_4, + "enum", RELEASE_5, + "_", RELEASE_9); + + for (Map.Entry<String, SourceVersion> entry : keyWordStart.entrySet()) { + String key = entry.getKey(); + SourceVersion value = entry.getValue(); + + check(true, isKeyword(key), "keyword", latest()); + check(false, isName(key), "name", latest()); + + for(SourceVersion version : SourceVersion.values()) { + boolean isKeyword = version.compareTo(value) >= 0; + + check(isKeyword, isKeyword(key, version), "keyword", version); + check(!isKeyword, isName(key, version), "name", version); + } + } + } + + private static void check(boolean result, boolean expected, + String message, SourceVersion version) { + if (result != expected) { + throw new RuntimeException("Unexpected " + message + "-ness of _ on " + version); + } + } }
< prev index next >