}
Object around(Integer i): execution(* doSomethingWithInteger(*)) && args(i) {
- // This used to work in preview 4 (Java 20), but fails during runtime with
- // java.lang.IndexOutOfBoundsException: Index 4 out of bounds for length 4
- // in ECJ 3.36.0-SNAPSHOT with Java 21.
- // See:
- // https://github.com/eclipse-jdt/eclipse.jdt.core/issues/1466.
- //
- // TODO: Activate when https://github.com/eclipse-jdt/eclipse.jdt.core/issues/1466 is fixed.
- /*
System.out.println(
switch (i) {
case null -> "value unavailable: " + i;
default -> "other integer: " + i;
}
);
- */
return proceed(i);
}
}
// constantLabelMustAppearBeforePattern(Integer.valueOf(123));
// constantLabelMustAppearBeforePattern(null);
- // TODO: Activate when https://github.com/eclipse-jdt/eclipse.jdt.core/issues/1466 is fixed.
- /*
constantLabelMustAppearBeforePatternInteger(-1);
constantLabelMustAppearBeforePatternInteger(0);
constantLabelMustAppearBeforePatternInteger(42);
constantLabelMustAppearBeforePatternInteger(-99);
constantLabelMustAppearBeforePatternInteger(Integer.valueOf(123));
constantLabelMustAppearBeforePatternInteger(null);
- */
System.out.println(testGenericSealedExhaustive(new E<Integer>()));
}
}
*/
- /**
- * This used to work in preview 4 (Java 20), but fails during runtime with
- * java.lang.IndexOutOfBoundsException: Index 4 out of bounds for length 4
- * in ECJ 3.36.0-SNAPSHOT with Java 21.
- * See:
- * https://github.com/eclipse-jdt/eclipse.jdt.core/issues/1466.
- *
- * TODO: Activate when https://github.com/eclipse-jdt/eclipse.jdt.core/issues/1466 is fixed.
- */
static String constantLabelMustAppearBeforePatternInteger(Integer i) {
switch (i) {
case null -> System.out.println("value unavailable: " + i);
<ajc-test dir="features1921/java21" vm="21" title="switch pattern matching preview 4 java">
<compile files="SwitchPatternPreview4OK.java" options="-21" />
<run class="SwitchPatternPreview4OK" vmargs="">
- <message></message>
+ <message/>
<stdout>
<line text="null" />
<line text="int 123" />
<line text="Sealed sub-class A" />
<line text="Sealed sub-class B" />
<line text="Sealed sub-record C" />
- <!-- TODO: Activate when https://github.com/eclipse-jdt/eclipse.jdt.core/issues/1466 is fixed. -->
- <!--
<line text="absolute value 1: -1" />
<line text="other integer: 0" />
<line text="positive integer: 42" />
<line text="other integer: -99" />
<line text="positive integer: 123" />
<line text="value unavailable: null" />
- -->
<line text="42" />
</stdout>
</run>
<line text="Sealed sub-class A" />
<line text="Sealed sub-class B" />
<line text="Sealed sub-record C" />
- <!-- TODO: Activate when https://github.com/eclipse-jdt/eclipse.jdt.core/issues/1466 is fixed. -->
- <!--
<line text="absolute value 1: -1" />
<line text="other integer: 0" />
<line text="positive integer: 42" />
<line text="other integer: -99" />
<line text="positive integer: 123" />
<line text="value unavailable: null" />
- -->
</stdout>
</run>
</ajc-test>