mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-17 01:24:33 +02:00
6415644: Make javax.lang.model.SourceVersion more informative
Reviewed-by: jjg
This commit is contained in:
parent
e568099980
commit
8c88656e09
2 changed files with 144 additions and 35 deletions
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* 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
|
||||
|
@ -23,13 +23,14 @@
|
|||
|
||||
/*
|
||||
* @test
|
||||
* @bug 7025809 8028543
|
||||
* @summary Test latest and latestSupported
|
||||
* @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.*;
|
||||
|
||||
|
@ -38,10 +39,45 @@ import static javax.lang.model.SourceVersion.*;
|
|||
*/
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue