Adding upstream version 2:9.1.1230.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
This commit is contained in:
parent
95f88d82e6
commit
0985b09abd
6270 changed files with 2000183 additions and 0 deletions
122
runtime/syntax/testdir/input/java_switch.java
Normal file
122
runtime/syntax/testdir/input/java_switch.java
Normal file
|
@ -0,0 +1,122 @@
|
|||
class SwitchTests // JDK 21+.
|
||||
{
|
||||
static void echo(Object o) { System.out.println(o); }
|
||||
|
||||
static {
|
||||
interface Yieldable<T>
|
||||
{
|
||||
T yield();
|
||||
default Yieldable<T> default_() { return this; }
|
||||
default Yieldable<T> when() { return this; }
|
||||
}
|
||||
|
||||
// There are 80 bytes (\@80<!) between "::" and "yield;".
|
||||
Yieldable<?> y = ((Yieldable<?>) () -> 0)::
|
||||
yield;
|
||||
((Yieldable<?>) () -> 0).when().default_().yield();
|
||||
|
||||
enum Letters { OTHER, ALPHA, BETA }
|
||||
|
||||
Letters when = Letters.OTHER;
|
||||
|
||||
switch (when) {
|
||||
case ALPHA: { echo(Letters.ALPHA); break; }
|
||||
case BETA: { echo(Letters.BETA); break; }
|
||||
default: { echo(Letters.OTHER); }
|
||||
}
|
||||
|
||||
echo(switch (when) {
|
||||
case ALPHA -> Letters.ALPHA;
|
||||
case BETA -> Letters.BETA;
|
||||
default -> { yield(Letters.OTHER); }
|
||||
});
|
||||
|
||||
String yield = null;
|
||||
|
||||
switch (yield) {
|
||||
case "A": case "B": { echo("A or B"); break; }
|
||||
case ":": { echo("Colon"); break; }
|
||||
case String str when !str.equals(""):
|
||||
{ echo("<non-empty>"); break; }
|
||||
case null: default: { echo("Other"); }
|
||||
}
|
||||
|
||||
echo(switch (yield) {
|
||||
case "A", "B" -> { yield("A or B"); }
|
||||
case "->" -> "Arrow";
|
||||
case String str when !str.equals("")
|
||||
-> "<non-empty>";
|
||||
case null, default -> "Other";
|
||||
});
|
||||
|
||||
Object o = new Object();
|
||||
|
||||
switch (o) {
|
||||
case null: { echo("null"); break; }
|
||||
case Letters[] ll: { echo("SwitchTests$1Letters[]"); break; }
|
||||
default: { echo("java.lang.Object"); break; }
|
||||
}
|
||||
|
||||
echo(switch (o) {
|
||||
case null -> "null";
|
||||
case Letters[] ll -> "SwitchTests$1Letters[]";
|
||||
default -> "java.lang.Object";
|
||||
});
|
||||
|
||||
char ch = 'c';
|
||||
|
||||
switch (ch) {
|
||||
case 'a': { echo('a'); break; }
|
||||
case 'b': { echo('b'); break; }
|
||||
default: { echo('\u0000'); break; }
|
||||
}
|
||||
|
||||
echo(switch (ch) {
|
||||
case 'a' -> 'a';
|
||||
case 'b' -> 'b';
|
||||
default -> '\u0000';
|
||||
});
|
||||
|
||||
byte b = (byte) 2;
|
||||
|
||||
switch (b) {
|
||||
case ((byte) 0): { echo((byte) 0); break; }
|
||||
case ((byte) 1): { echo((byte) 1); break; }
|
||||
default: { echo((byte) -1); break; }
|
||||
}
|
||||
|
||||
echo(switch (b) {
|
||||
case ((byte) 0) -> (byte) 0;
|
||||
case ((byte) 1) -> (byte) 1;
|
||||
default -> (byte) -1;
|
||||
});
|
||||
|
||||
short sh = (short) 2;
|
||||
|
||||
switch (sh) {
|
||||
case ((short) 0): { echo((short) 0); break; }
|
||||
case ((short) 1): { echo((short) 1); break; }
|
||||
default: { echo((short) -1); break; }
|
||||
}
|
||||
|
||||
echo(switch (sh) {
|
||||
case ((short) 0) -> (short) 0;
|
||||
case ((short) 1) -> (short) 1;
|
||||
default -> (short) -1;
|
||||
});
|
||||
|
||||
int i = 2;
|
||||
|
||||
switch (i) {
|
||||
case 0b0__00___000: { echo(0); break; }
|
||||
case 0x000___00__1: { echo(1); break; }
|
||||
default: { echo(-1); break; }
|
||||
}
|
||||
|
||||
echo(switch (i) {
|
||||
case 0_0_0_0_0 -> 0;
|
||||
case 1 -> 1;
|
||||
default -> -1;
|
||||
});
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue