diff options
author | Alexander Kriegisch <Alexander@Kriegisch.name> | 2023-11-05 10:03:23 +0700 |
---|---|---|
committer | Alexander Kriegisch <Alexander@Kriegisch.name> | 2023-11-05 10:03:23 +0700 |
commit | 70f3c09bcdd80f682b098f22da8b6285211e46da (patch) | |
tree | 1587bbbd3259fd6ff70030ca0a6b6d6ff337a470 /tests/features1921 | |
parent | f0c0088286c17f8a5bf6fa8a00b01a7f46568cf4 (diff) | |
download | aspectj-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.aj | 35 |
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) { } |