]> source.dussan.org Git - aspectj.git/commitdiff
Update ECJ version, activate Java 17 preview features tests
authorAlexander Kriegisch <Alexander@Kriegisch.name>
Sat, 2 Oct 2021 11:55:59 +0000 (13:55 +0200)
committerAlexander Kriegisch <Alexander@Kriegisch.name>
Sat, 2 Oct 2021 11:57:53 +0000 (13:57 +0200)
After JDT Core (ECJ) was updated to the final Java 17 feature set, the
tests now pass as expected.

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
org.aspectj.ajdt.core/src/main/resources/org/aspectj/org/eclipse/jdt/internal/compiler/batch/messages_aspectj.properties
tests/features198/java17/SwitchPatternAspect.aj
tests/src/test/java/org/aspectj/systemtest/ajc198/Java17PreviewFeaturesTests.java
tests/src/test/resources/org/aspectj/systemtest/ajc198/ajc198.xml

index 36e9597a5f1ef115189edb5a9ab26b38cc33cfdb..a54d7ec22c076edaa224a1200b43c6196a18590c 100644 (file)
@@ -1,5 +1,5 @@
 compiler.name = AspectJ Compiler
-compiler.version = Eclipse Compiler a00b62fa3572b0 (17Mar2021) - Java16
+compiler.version = Eclipse Compiler f8768b6899a6a2 (15Sep2021) - Java17
 compiler.copyright =
 
 misc.version = {0} {1} - {2} {3}
index 5ca2b9611d93091c51e8210e255662f27639d5c6..5a3eeeb308e1a9e443c54e56875543afb98c0cea 100644 (file)
@@ -1,3 +1,5 @@
+import java.util.List;
+
 aspect SwitchPatternAspect {
   Object around(Object o) : execution(* doSomethingWithObject(*)) && args(o) {
     System.out.println(switch (o) {
@@ -41,7 +43,7 @@ final class A implements S {}
 final class B implements S {}
 record C(int i) implements S {}  // Implicitly final
 
-public class Application {
+class Application {
   public static void main(String[] args) {
     doSomethingWithObject(null);
     doSomethingWithObject(123);
@@ -54,12 +56,12 @@ public class Application {
     doSomethingWithShape(new Circle(5));
     doSomethingWithShape(new Circle(6));
 
-    doSomethingWithSealedClass(new A()));
-    doSomethingWithSealedClass(new B()));
-    doSomethingWithSealedClass(new C(5)));
+    doSomethingWithSealedClass(new A());
+    doSomethingWithSealedClass(new B());
+    doSomethingWithSealedClass(new C(5));
   }
 
-  public Object doSomethingWithObject(Object o) { return o; }
-  public void doSomethingWithSealedClass(S s) {}
-  public void doSomethingWithShape(Shape s) {}
+  public static Object doSomethingWithObject(Object o) { return o; }
+  public static void doSomethingWithSealedClass(S s) {}
+  public static void doSomethingWithShape(Shape s) {}
 }
index e17ae26d657a8971b60374ecb7b79893b3aa71f4..c1b0f8c44554be908a259f5d8864bce92bff23c8 100644 (file)
@@ -18,26 +18,20 @@ import org.aspectj.testing.XMLBasedAjcTestCaseForJava17Only;
 public class Java17PreviewFeaturesTests extends XMLBasedAjcTestCaseForJava17Only {
 
   public void testSwitchPatternMatchingCaseLabelDominatedByPrecedingError() {
-    // TODO: JDT Core does not support detecting type domination detection in the development version yet -> activate when available
-    System.out.println("TODO: JDT Core does not support detecting type domination detection in the development version yet -> activate when available");
-//    runTest("switch pattern matching error");
+    runTest("switch pattern matching error");
   }
 
   public void testSwitchPatternMatchingJava() {
-    // TODO: JDT Core does not support sealed class coverage in the development version yet -> activate when available
-    System.out.println("TODO: JDT Core does not support sealed class coverage in the development version yet -> activate when available");
-//    runTest("switch pattern matching java");
-//    checkVersion("SwitchPatternOK", Constants.MAJOR_17, Constants.PREVIEW_MINOR_VERSION);
+    runTest("switch pattern matching java");
+    checkVersion("SwitchPatternOK", Constants.MAJOR_17, Constants.PREVIEW_MINOR_VERSION);
   }
 
   public void testSwitchPatternMatchingAspect() {
-    // TODO: JDT Core does not support sealed class coverage in the development version yet -> activate when available
-    System.out.println("TODO: JDT Core does not support sealed class coverage in the development version yet -> activate when available");
-//    runTest("switch pattern matching aspect");
-//    checkVersion("SwitchPatternAspect", Constants.MAJOR_17, Constants.PREVIEW_MINOR_VERSION);
-//    checkVersion("Application", Constants.MAJOR_17, Constants.PREVIEW_MINOR_VERSION);
-//    checkVersion("Shape", Constants.MAJOR_17, Constants.PREVIEW_MINOR_VERSION);
-//    checkVersion("S", Constants.MAJOR_17, Constants.PREVIEW_MINOR_VERSION);
+    runTest("switch pattern matching aspect");
+    checkVersion("SwitchPatternAspect", Constants.MAJOR_17, Constants.PREVIEW_MINOR_VERSION);
+    checkVersion("Application", Constants.MAJOR_17, Constants.PREVIEW_MINOR_VERSION);
+    checkVersion("Shape", Constants.MAJOR_17, Constants.PREVIEW_MINOR_VERSION);
+    checkVersion("S", Constants.MAJOR_17, Constants.PREVIEW_MINOR_VERSION);
   }
 
   public static Test suite() {
index a0c26d098ff420f4e55345a1874dfb5970da80ad..9937413a95a8a1917c724289ea0668a069fa686b 100644 (file)
@@ -30,7 +30,7 @@
   <ajc-test dir="features198/java17" vm="17" title="switch pattern matching error">
     <compile files="SwitchPatternError.java" options="--enable-preview -17">
       <!-- TODO: Add correct compiler error message, as soon as JDT Core supports it -->
-      <message kind="error" file="SwitchPatternError.java" text="XXX"/>
+      <message kind="error" file="SwitchPatternError.java" text="This case label is dominated by one of the preceding case label"/>
     </compile>
   </ajc-test>