[jdk22] Adds support for unnamed variables (JEP 456)

This commit is contained in:
Rawi01 authored and Roel Spilker committed 2024-03-18 00:40:39 +01:00
1 parent a54ec7005e
commit 23307eb8d1
3 files changed
+151 -1

No files matched your search

@@ -0,0 +1,70 @@
// version 22:
import java.util.Arrays;
import java.util.Scanner;
import java.util.stream.Stream;
record Box<T>(T content) {
}
record Pair<T, U>(T first, U second) {
}
public class UnnamedVariables {
void enhancedLoop() {
for (String _ : Arrays.asList("")) {
}
}
void initializationInForLoop() {
for (int i = 0, _ = Integer.MAX_VALUE; i < 10; i++) {
}
}
void assignment() {
var _ = 1;
}
void catchBlock() {
try {
} catch (Exception _) {
}
}
void tryWithResources() {
try (var _ = new Scanner("")) {
}
}
void lambda() {
Stream.of(1).forEach(_ -> {
});
}
Object switchStatement(Object o) {
return switch (o) {
case String _, Integer _ -> o;
case Long _ -> o;
default -> o;
};
}
void recordPattern(Object o) {
if (o instanceof Pair(Box _, Box(Integer _))) {
}
if (o instanceof Box(String _)) {
}
if (o instanceof Box(var _)) {
}
if (o instanceof Box(_)) {
}
}
Object recordPatternSwitch(Object o) {
return switch (o) {
case Box(String _), Box(Integer _) -> o;
case Box(Long _) -> o;
case Box(_) -> o;
default -> o;
};
}
}