--- old/test/langtools/tools/javac/versions/Versions.java 2020-05-17 11:26:10.465060001 -0700 +++ new/test/langtools/tools/javac/versions/Versions.java 2020-05-17 11:26:10.109060001 -0700 @@ -274,6 +274,8 @@ pass(newargs); newargs[asize] = "New110.java"; pass(newargs); + newargs[asize] = "New111.java"; + fail(newargs); } protected void checksrc111(String... args) { @@ -289,6 +291,8 @@ pass(newargs); newargs[asize] = "New111.java"; pass(newargs); + newargs[asize] = "New114.java"; + fail(newargs); } protected void checksrc112(String... args) { @@ -303,12 +307,24 @@ protected void checksrc114(String... args) { printargs("checksrc114", args); - checksrc111(args); + int asize = args.length; + String[] newargs = new String[asize+1]; + System.arraycopy(args, 0, newargs,0 , asize); + newargs[asize] = "New17.java"; + pass(newargs); + newargs[asize] = "New18.java"; + pass(newargs); + newargs[asize] = "New110.java"; + pass(newargs); + newargs[asize] = "New111.java"; + pass(newargs); + newargs[asize] = "New114.java"; + pass(newargs); } protected void checksrc115(String... args) { printargs("checksrc115", args); - checksrc111(args); + checksrc114(args); } protected void pass(String... args) { @@ -423,43 +439,70 @@ * Create a file with a new feature in 1.7, not in 1.6 : "<>" */ writeSourceFile("New17.java", - "import java.util.List;\n" + - "import java.util.ArrayList;\n" + - "class New17 { List s = new ArrayList<>(); }\n" + """ + import java.util.List; + import java.util.ArrayList; + class New17 { List s = new ArrayList<>(); } + """ ); /* * Create a file with a new feature in 1.8, not in 1.7 : lambda */ writeSourceFile("New18.java", - "public class New18 { \n" + - " void m() { \n" + - " new Thread(() -> { }); \n" + - " } \n" + - "} \n" + """ + public class New18 { + void m() { + new Thread(() -> { }); + } + } + """ ); /* * Create a file with a new feature in 1.10, not in 1.9 : var */ writeSourceFile("New110.java", - "public class New110 { \n" + - " void m() { \n" + - " var tmp = new Thread(() -> { }); \n" + - " } \n" + - "} \n" + """ + public class New110 { + void m() { + var tmp = new Thread(() -> { }); + } + } + """ ); /* * Create a file with a new feature in 11, not in 10 : var for lambda parameters */ writeSourceFile("New111.java", - "public class New111 { \n" + - " static java.util.function.Function f = (var x) -> x.substring(0);\n" + - " void m(String name) { \n" + - " var tmp = new Thread(() -> { }, f.apply(name)); \n" + - " } \n" + - "} \n" + """ + public class New111 { + static java.util.function.Function f = (var x) -> x.substring(0); + void m(String name) { + var tmp = new Thread(() -> { }, f.apply(name)); + } + } + """ + ); + + /* + * Create a file with a new feature in 14, not in 13 : switch expressions + */ + writeSourceFile("New114.java", + """ + public class New114 { + static { + int i = 5; + System.out.println( + switch(i) { + case 0 -> false; + default -> true; + } + ); + } + } + """ ); }