aboutsummaryrefslogtreecommitdiffstats
path: root/tests/features1921
diff options
context:
space:
mode:
authorAlexander Kriegisch <Alexander@Kriegisch.name>2023-11-05 10:03:23 +0700
committerAlexander Kriegisch <Alexander@Kriegisch.name>2023-11-05 10:03:23 +0700
commit70f3c09bcdd80f682b098f22da8b6285211e46da (patch)
tree1587bbbd3259fd6ff70030ca0a6b6d6ff337a470 /tests/features1921
parentf0c0088286c17f8a5bf6fa8a00b01a7f46568cf4 (diff)
downloadaspectj-70f3c09bcdd80f682b098f22da8b6285211e46da.tar.gz
aspectj-70f3c09bcdd80f682b098f22da8b6285211e46da.zip
Enable some tests after J19 problems were fixed for J21
Two test classes which had redundant default clauses for switch with record patterns were copied from the java19 to the java21 directory and the redundant clauses deactivated, i.e. the test now run as originally intended. For older JDK versions, the old tests still stay active in order to document the old state of affairs. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
Diffstat (limited to 'tests/features1921')
-rw-r--r--tests/features1921/java21/RecordPatternsPreview1ExhaustivenessAspect.aj35
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/features1921/java21/RecordPatternsPreview1ExhaustivenessAspect.aj b/tests/features1921/java21/RecordPatternsPreview1ExhaustivenessAspect.aj
new file mode 100644
index 000000000..d87c99ffd
--- /dev/null
+++ b/tests/features1921/java21/RecordPatternsPreview1ExhaustivenessAspect.aj
@@ -0,0 +1,35 @@
+public aspect RecordPatternsPreview1ExhaustivenessAspect {
+ static Pair<I> p2 = new Pair<>(new C(), new D());
+
+ public static void main(String[] args) {
+ doSomething(p2);
+ }
+
+ public static void doSomething(Pair<I> pair) {
+ System.out.println(pair.toString().replaceAll("@[0-9a-f]+", "@000"));
+ }
+
+ before(Pair<I> pair) : execution(* doSomething(Pair)) && args(pair) {
+ switch (pair) {
+ case Pair<I>(I i, C c) -> System.out.println("x");
+ case Pair<I>(I i, D d) -> System.out.println("y");
+ // Redundant default clause no longer necessary after fix of https://github.com/eclipse-jdt/eclipse.jdt.core/issues/455.
+ // Old version with default clause see features1919/java19/RecordPatternsPreview1ExhaustivenessAspect.aj.
+ // default -> System.out.println("z");
+ }
+
+ switch (pair) {
+ case Pair<I>(C c, I i) -> System.out.println("a");
+ case Pair<I>(D d, C c) -> System.out.println("b");
+ case Pair<I>(D d1, D d2) -> System.out.println("c");
+ // Redundant default clause no longer necessary after fix of https://github.com/eclipse-jdt/eclipse.jdt.core/issues/455.
+ // Old version with default clause see features1919/java19/RecordPatternsPreview1ExhaustivenessAspect.aj.
+ // default -> System.out.println("d");
+ }
+ }
+}
+
+sealed interface I permits C, D { }
+final class C implements I { }
+final class D implements I { }
+record Pair<T>(T x, T y) { }