You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ajc1919.xml 7.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. <!DOCTYPE suite SYSTEM "../tests/ajcTestSuite.dtd"[]>
  2. <!--
  3. Java 19: no new final language features, only preview/incubator ones:
  4. - "JEP 427: Pattern Matching for switch (Third Preview)" (syntax change, introducing 'when')
  5. - "JEP 405: Record Patterns (Preview)"
  6. - "JEP 425: Virtual Threads (Preview)" (API only)
  7. - "JEP 428: Structured Concurrency (Incubator)" (API only)
  8. -->
  9. <suite>
  10. <!-- Java ?? final, Java 17, 18, 19 preview -->
  11. <ajc-test dir="features1919/java19" vm="19" title="switch pattern matching preview 3 java">
  12. <compile files="SwitchPatternPreview3OK.java" options="--enable-preview -19" />
  13. <run class="SwitchPatternPreview3OK" vmargs="--enable-preview">
  14. <message></message>
  15. <stdout>
  16. <line text="null" />
  17. <line text="int 123" />
  18. <line text="long 999" />
  19. <line text="double 12.340000" />
  20. <line text="String foo" />
  21. <line text="[123, foo, 999, 12.34]" />
  22. <line text="Non-circle" />
  23. <line text="Small circle" />
  24. <line text="Large circle" />
  25. <line text="Sealed sub-class A" />
  26. <line text="Sealed sub-class B" />
  27. <line text="Sealed sub-record C" />
  28. <line text="absolute value 1: -1" />
  29. <line text="other integer: 0" />
  30. <line text="positive integer: 42" />
  31. <line text="other integer: -99" />
  32. <line text="positive integer: 123" />
  33. <line text="value unavailable: null" />
  34. </stdout>
  35. </run>
  36. </ajc-test>
  37. <!-- Java ?? final, Java 17, 18, 19 preview -->
  38. <ajc-test dir="features1919/java19" vm="19" title="switch pattern matching preview 3 aspect">
  39. <compile files="SwitchPatternPreview3Aspect.aj" options="--enable-preview -19" />
  40. <run class="Application" vmargs="--enable-preview">
  41. <stdout>
  42. <line text="null" />
  43. <line text="int 123" />
  44. <line text="long 999" />
  45. <line text="double 12.340000" />
  46. <line text="String foo" />
  47. <line text="[123, foo, 999, 12.34]" />
  48. <line text="Non-circle" />
  49. <line text="Small circle" />
  50. <line text="Large circle" />
  51. <line text="Sealed sub-class A" />
  52. <line text="Sealed sub-class B" />
  53. <line text="Sealed sub-record C" />
  54. <line text="absolute value 1: -1" />
  55. <line text="other integer: 0" />
  56. <line text="positive integer: 42" />
  57. <line text="other integer: -99" />
  58. <line text="positive integer: 123" />
  59. <line text="value unavailable: null" />
  60. </stdout>
  61. </run>
  62. </ajc-test>
  63. <!-- Java ?? final, Java 17, 18, 19 preview -->
  64. <ajc-test dir="features198/java17" vm="19" title="switch pattern matching error">
  65. <compile files="SwitchPatternError.java" options="--enable-preview -19">
  66. <!-- TODO: Add correct compiler error message, as soon as JDT Core supports it -->
  67. <message kind="error" file="SwitchPatternError.java" text="This case label is dominated by one of the preceding case label"/>
  68. </compile>
  69. </ajc-test>
  70. <!-- Java ?? final, Java 17, 18, 19 preview -->
  71. <ajc-test dir="features1919/java19" vm="19" title="switch pattern matching preview 3 error 1">
  72. <compile files="SwitchPatternPreview3Error1.java" options="--enable-preview -19">
  73. <!-- TODO: Add correct compiler error message, as soon as JDT Core supports it -->
  74. <message kind="error" file="SwitchPatternPreview3Error1.java" text="This case label is dominated by one of the preceding case label"/>
  75. </compile>
  76. </ajc-test>
  77. <!-- Java ?? final, Java 17, 18, 19 preview -->
  78. <ajc-test dir="features1919/java19" vm="19" title="switch pattern matching preview 3 error 2">
  79. <compile files="SwitchPatternPreview3Error2.java" options="--enable-preview -19">
  80. <!-- TODO: Add correct compiler error message, as soon as JDT Core supports it -->
  81. <message kind="error" file="SwitchPatternPreview3Error2.java" text="This case label is dominated by one of the preceding case label"/>
  82. </compile>
  83. </ajc-test>
  84. <!-- Java ?? final, Java 19 preview -->
  85. <ajc-test dir="features1919/java19" vm="19" title="record patterns">
  86. <compile files="RecordPatternsPreview1OK.java" options="--enable-preview -19"/>
  87. </ajc-test>
  88. <!-- Java ?? final, Java 19 preview -->
  89. <ajc-test dir="features1919/java19" vm="19" title="record patterns error">
  90. <compile files="RecordPatternsPreview1Error.java" options="--enable-preview -19">
  91. <message kind="error" file="RecordPatternsPreview1Error.java" text="Raw types are not allowed in record patterns"/>
  92. <message kind="error" file="RecordPatternsPreview1Error.java" text="Raw types are not allowed in record patterns"/>
  93. </compile>
  94. </ajc-test>
  95. <!-- Java ?? final, Java 19 preview -->
  96. <ajc-test dir="features1919/java19" vm="19" title="record patterns exhaustiveness 1">
  97. <compile files="RecordPatternsPreview1ExhaustivenessOK1.java" options="--enable-preview -19"/>
  98. <run class="RecordPatternsPreview1ExhaustivenessOK1" vmargs="--enable-preview">
  99. <stdout>
  100. <line text="y"/>
  101. <line text="a"/>
  102. </stdout>
  103. </run>
  104. </ajc-test>
  105. <!-- Java ?? final, Java 19 preview -->
  106. <ajc-test dir="features1919/java19" vm="19" title="record patterns exhaustiveness aspect">
  107. <compile files="RecordPatternsPreview1ExhaustivenessAspect.aj" options="--enable-preview -19"/>
  108. <!--
  109. TODO: Remove redundant default clause when https://github.com/eclipse-jdt/eclipse.jdt.core/issues/455
  110. has been fixed. But even with the default clause, it generates wrong byte code and throws runtime error:
  111. NoSuchMethodError: 'I Pair.x()'
  112. -->
  113. <!--run class="RecordPatternsPreview1ExhaustivenessAspect" vmargs="-XXX-enable-preview">
  114. <stdout>
  115. <line text="y"/>
  116. <line text="a"/>
  117. <line text="Pair[x=C@000, y=D@000]"/>
  118. </stdout>
  119. </run-->
  120. </ajc-test>
  121. <!-- Java ?? final, Java 19 preview -->
  122. <ajc-test dir="features1919/java19" vm="19" title="record patterns aspect">
  123. <compile files="RecordPatternsPreview1Aspect.aj" options="--enable-preview -19"/>
  124. <run class="RecordPatternsPreview1Aspect" vmargs="--enable-preview">
  125. <stdout>
  126. <line text="9"/>
  127. <line text="14"/>
  128. <line text="Doing something with Point[x=2, y=7]"/>
  129. <line text="Upper-left color: RED"/>
  130. <line text="Upper-left color: RED"/>
  131. <line text="Upper-left x coordinate: 1"/>
  132. <line text="Doing something with Rectangle[upperLeft=ColoredPoint[p=Point[x=1, y=6], c=RED], lowerRight=ColoredPoint[p=Point[x=4, y=6], c=BLUE]]"/>
  133. </stdout>
  134. </run>
  135. </ajc-test>
  136. <!-- Java ?? final, Java 19 preview -->
  137. <ajc-test dir="features1919/java19" vm="19" title="record patterns exhaustiveness error">
  138. <compile files="RecordPatternsPreview1ExhaustivenessError.java" options="--enable-preview -19">
  139. <message kind="error" file="RecordPatternsPreview1ExhaustivenessError.java" text="An enhanced switch statement should be exhaustive; a default label expected"/>
  140. </compile>
  141. </ajc-test>
  142. <!-- Java ?? final, Java 19 preview -->
  143. <ajc-test dir="features1919/java19" vm="19" title="record patterns exhaustiveness 2">
  144. <compile files="RecordPatternsPreview1ExhaustivenessOK2.java" options="--enable-preview -19"/>
  145. <run class="RecordPatternsPreview1ExhaustivenessOK2" vmargs="--enable-preview">
  146. <stdout>
  147. <line text="Bob 12"/>
  148. </stdout>
  149. </run>
  150. </ajc-test>
  151. <!-- Currently, there are no bugfixes with tests in this AspectJ vesion -->
  152. <ajc-test dir="bugs1919/github_99999" vm="19" title="dummy Java 19">
  153. </ajc-test>
  154. </suite>