# HG changeset patch # User asaha # Date 1515477355 28800 # Node ID 97db4ee6e59aa8ff336ed4a56652b1a838b0cecb # Parent dda1a427b086379dfcca66034a624cfe24aa6e0c# Parent 239c7d9bb192debabc1dbd1730f3acbca1b76087 Merge diff -r dda1a427b086 -r 97db4ee6e59a src/java.compiler/share/classes/javax/lang/model/SourceVersion.java --- a/src/java.compiler/share/classes/javax/lang/model/SourceVersion.java Tue Dec 19 16:31:16 2017 +0000 +++ b/src/java.compiler/share/classes/javax/lang/model/SourceVersion.java Mon Jan 08 21:55:55 2018 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2018, 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 @@ -219,8 +219,9 @@ * followed only by characters for which {@link * Character#isJavaIdentifierPart(int)} returns {@code true}. * This pattern matches regular identifiers, keywords, restricted - * keywords, and the literals {@code "true"}, {@code "false"}, and - * {@code "null"}. + * keywords, and the literals {@code "true"}, {@code "false"}, + * {@code "null"}, and {@code "var"}. + * * The method returns {@code false} for all other strings. * * @param name the string to check @@ -254,8 +255,9 @@ * qualified name in the latest source version. Unlike {@link * #isIdentifier isIdentifier}, this method returns {@code false} * for keywords, boolean literals, and the null literal. + * * This method returns {@code true} for restricted - * keywords. + * keywords and {@code "var"}. * * @param name the string to check * @return {@code true} if this string is a @@ -272,8 +274,9 @@ * qualified name in the given source version. Unlike {@link * #isIdentifier isIdentifier}, this method returns {@code false} * for keywords, boolean literals, and the null literal. + * * This method returns {@code true} for restricted - * keywords. + * keywords and {@code "var"}. * * @param name the string to check * @param version the version to use @@ -297,7 +300,7 @@ * Returns whether or not {@code s} is a keyword, boolean literal, * or null literal in the latest source version. * This method returns {@code false} for restricted - * keywords. + * keywords and {@code "var"}. * * @param s the string to check * @return {@code true} if {@code s} is a keyword, or boolean @@ -314,7 +317,7 @@ * Returns whether or not {@code s} is a keyword, boolean literal, * or null literal in the given source version. * This method returns {@code false} for restricted - * keywords. + * keywords and {@code "var"}. * * @param s the string to check * @param version the version to use diff -r dda1a427b086 -r 97db4ee6e59a test/langtools/tools/javac/processing/model/TestSourceVersion.java --- a/test/langtools/tools/javac/processing/model/TestSourceVersion.java Tue Dec 19 16:31:16 2017 +0000 +++ b/test/langtools/tools/javac/processing/model/TestSourceVersion.java Mon Jan 08 21:55:55 2018 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2018, 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 8028543 6415644 8028544 8029942 + * @bug 7025809 8028543 6415644 8028544 8029942 8187951 * @summary Test latest, latestSupported, underscore as keyword, etc. * @author Joseph D. Darcy * @modules java.compiler @@ -42,6 +42,7 @@ testLatestSupported(); testVersionVaryingKeywords(); testRestrictedKeywords(); + testVar(); } private static void testLatestSupported() { @@ -96,6 +97,19 @@ } } + private static void testVar() { + + for(SourceVersion version : SourceVersion.values()) { + check(false, isKeyword("var", version), "keyword", version); + check(false, isKeyword("foo.var", version), "keyword", version); + check(false, isKeyword("var.foo", version), "keyword", version); + + check(true, isName("var", version), "name", version); + check(true, isName("foo.var", version), "name", version); + check(true, isName("var.foo", version), "name", version); + } + } + private static void check(boolean result, boolean expected, String message, SourceVersion version) { if (result != expected) {