]> source.dussan.org Git - aspectj.git/commitdiff
OutputSpec.matchesThisVm better supports version ranges
authorAlexander Kriegisch <Alexander@Kriegisch.name>
Wed, 5 Oct 2022 15:37:21 +0000 (17:37 +0200)
committerAlexander Kriegisch <Alexander@Kriegisch.name>
Wed, 5 Oct 2022 15:37:21 +0000 (17:37 +0200)
vmVersionRanges might be a single version like "9", a list of versions
like "1.2,1.3,1.4,1.5", an equivalent range of "1.2-1.5", an open range
like "-1.8", "9-" (equivalent to "9+") or a more complex list of ranges
like "-1.6,9-11,13-14,17-" or "8,11,16+".

Empty ranges like in "", " ",  "8,,14", ",5", "6-," will be ignored.
I.e., they will not yield a positive match.

Bogus ranges like "9-11-14" will be ignored, too.

Existing XML test specs using '<line text="..." vm="v,v2,...,vn"/>
have been adjusted to use version ranges rather than long lists of
consecutive versions. Furthermore, ranges with a trailing '+' like '14+'
were replaced by using the new canonical format '14-', even though the
parser still correctly recognises '14+'.

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
12 files changed:
testing/src/test/java/org/aspectj/testing/OutputSpec.java
tests/src/test/resources/org/aspectj/systemtest/ajc150/ajc150.xml
tests/src/test/resources/org/aspectj/systemtest/ajc151/ajc151.xml
tests/src/test/resources/org/aspectj/systemtest/ajc154/ajc154.xml
tests/src/test/resources/org/aspectj/systemtest/ajc1611/newfeatures-tests.xml
tests/src/test/resources/org/aspectj/systemtest/ajc1612/ajc1612.xml
tests/src/test/resources/org/aspectj/systemtest/ajc169/intertype.xml
tests/src/test/resources/org/aspectj/systemtest/ajc170/ajc170.xml
tests/src/test/resources/org/aspectj/systemtest/ajc173/ajc173.xml
tests/src/test/resources/org/aspectj/systemtest/ajc174/ajc174.xml
tests/src/test/resources/org/aspectj/systemtest/ajc188/ajc188.xml
tests/src/test/resources/org/aspectj/systemtest/ajc190/ajc190_from150.xml

index 5a6594756ffd6670246895b648a87524e6f99066..14fc3bb621f6ddb215ce5e93760824ce532eb89f 100644 (file)
@@ -17,6 +17,8 @@ import java.util.List;
 import org.aspectj.tools.ajc.AjcTestCase;
 import org.aspectj.util.LangUtil;
 
+import static java.lang.Double.parseDouble;
+
 public class OutputSpec {
 
        private List<String> expectedOutputLines = new ArrayList<>();
@@ -28,28 +30,31 @@ public class OutputSpec {
        }
 
        /**
-        * For a test output line that has specified a vm version, check if it matches the vm we are running on.
-        * vm might be "1.2,1.3,1.4,1.5" or simply "9" or it may be a version with a '+' suffix indicating that
-        * level or later, e.g. "9+" should be ok on Java 10
-        * @return true if the current vm version matches the spec
+        * For a test output line that has specified list of JVM version ranges, determine whether the JVM we are running on
+        * matches at least one of those ranges.
+        *
+        * @param vmVersionRanges might be a single version like "9", a list of versions like "1.2,1.3,1.4,1.5", an equivalent
+        *          range of "1.2-1.5", an open range like "-1.8", "9-" (equivalent to "9+") or a more complex list of ranges
+        *          like "-1.6,9-11,13-14,17-" or "8,11,16+". Empty ranges like in "", " ", "8,,14", ",5", "6-," will be
+        *          ignored. I.e., they will not yield a positive match. Bogus ranges like "9-11-14" will be ignored, too.
+        *
+        * @return true if the current vmVersionRanges version matches the spec
         */
-       private boolean matchesThisVm(String vm) {
-               // vm might be 1.2, 1.3, 1.4, 1.5 or 1.9 possibly with a '+' in there
-               // For now assume + is attached to there only being one version, like "9+"
-               //              System.out.println("Checking "+vm+" for "+LangUtil.getVmVersionString());
-               String v = LangUtil.getVmVersionString();
-               if (v.endsWith(".0")) {
-                       v = v.substring(0,v.length()-2);
-               }
-               if (vm.contains(v)) {
-                       return true;
-               }
-               if (vm.endsWith("+")) {
-                       double vmVersion = LangUtil.getVmVersion();
-                       double vmSpecified = Double.parseDouble(vm.substring(0,vm.length()-1));
-                       return vmVersion >= vmSpecified;
-               }
-               return false;
+       private boolean matchesThisVm(String vmVersionRanges) {
+               double currentVmVersion = LangUtil.getVmVersion();
+               return Arrays.stream(vmVersionRanges.split(","))
+                       .map(String::trim)
+                       .filter(range -> !range.isEmpty())
+                       .map(range -> range
+                               .replaceFirst("^([0-9.]+)$", "$1-$1")   // single version 'n' to range 'n-n'
+                               .replaceFirst("^-", "0-")               // left open range '-n' to '0-n'
+                               .replaceFirst("[+-]$", "-99999")        // right open range 'n-' or 'n+' to 'n-99999'
+                               .split("-")                             // range 'n-m' to array ['n', 'm']
+                       )
+                       .filter(range -> range.length == 2)
+                       .map(range -> new double[] { parseDouble(range[0]), parseDouble(range[1]) })
+                       //.filter(range -> { System.out.println(range[0] + " - " +range[1]); return true; })
+                       .anyMatch(range -> range[0] <= currentVmVersion && range[1] >= currentVmVersion);
        }
 
        public void matchAgainst(String output) {
index 7963070e0eaf414ede1e62f8c974d80fdb662755..63313f6240f7e489b31bcff4e8d7143b89924ecf 100644 (file)
               <line text="@target(Classified) at call(Class java.lang.Object.getClass())"/>
               <line text="1 @Foo()"/>
               <line text="1 @Foo()"/>
-              <line text="1 @Classified(classification=TOP-SECRET)" vm="1.2,1.3,1.4,1.5,1.6,1.7,1.8"/>
-              <line text="1 @Classified(classification=&quot;TOP-SECRET&quot;)" vm="9+"/>
+              <line text="1 @Classified(classification=TOP-SECRET)" vm="-1.8"/>
+              <line text="1 @Classified(classification=&quot;TOP-SECRET&quot;)" vm="9-"/>
               <line text="This information is TOP-SECRET"/>
               <line text="Entering critical join point with priority 3"/>
               <line text="Entering critical join point with reflectively obtained priority 3"/>
      <run class="GenericAspectRuntimePointcuts">
        <stdout>
          <line text="target-ok an X execution(void X.foo())"/>
-         <line text="@this-ok @MyAnnotation(value=my-value) execution(void X.foo())" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@this-ok @MyAnnotation(value=&quot;my-value&quot;) execution(void X.foo())" vm="9,10,11,12,13"/>
-         <line text="@this-ok @MyAnnotation(&quot;my-value&quot;) execution(void X.foo())" vm="14+"/>
-         <line text="@target-ok @MyAnnotation(value=my-value) execution(void X.foo())" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@target-ok @MyAnnotation(value=&quot;my-value&quot;) execution(void X.foo())" vm="9,10,11,12,13"/>
-         <line text="@target-ok @MyAnnotation(&quot;my-value&quot;) execution(void X.foo())" vm="14+"/>
-         <line text="@within-ok @MyAnnotation(value=my-value) execution(void X.foo())" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@within-ok @MyAnnotation(value=&quot;my-value&quot;) execution(void X.foo())" vm="9,10,11,12,13"/>
-         <line text="@within-ok @MyAnnotation(&quot;my-value&quot;) execution(void X.foo())" vm="14+"/>
+         <line text="@this-ok @MyAnnotation(value=my-value) execution(void X.foo())" vm="1.5-1.8"/>
+         <line text="@this-ok @MyAnnotation(value=&quot;my-value&quot;) execution(void X.foo())" vm="9-13"/>
+         <line text="@this-ok @MyAnnotation(&quot;my-value&quot;) execution(void X.foo())" vm="14-"/>
+         <line text="@target-ok @MyAnnotation(value=my-value) execution(void X.foo())" vm="1.5-1.8"/>
+         <line text="@target-ok @MyAnnotation(value=&quot;my-value&quot;) execution(void X.foo())" vm="9-13"/>
+         <line text="@target-ok @MyAnnotation(&quot;my-value&quot;) execution(void X.foo())" vm="14-"/>
+         <line text="@within-ok @MyAnnotation(value=my-value) execution(void X.foo())" vm="1.5-1.8"/>
+         <line text="@within-ok @MyAnnotation(value=&quot;my-value&quot;) execution(void X.foo())" vm="9-13"/>
+         <line text="@within-ok @MyAnnotation(&quot;my-value&quot;) execution(void X.foo())" vm="14-"/>
          <line text="cflow-ok an X a Y set(Y X.y)"/>
-         <line text="@annotation-ok-sub @MyAnnotation(value=bar) execution(void X.bar())" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@annotation-ok-sub @MyAnnotation(value=&quot;bar&quot;) execution(void X.bar())" vm="9,10,11,12,13"/>
-         <line text="@annotation-ok-sub @MyAnnotation(&quot;bar&quot;) execution(void X.bar())" vm="14+"/>
-         <line text="@annotation-ok @MyAnnotation(value=bar) execution(void X.bar())" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@annotation-ok @MyAnnotation(value=&quot;bar&quot;) execution(void X.bar())" vm="9,10,11,12,13"/>
-         <line text="@annotation-ok @MyAnnotation(&quot;bar&quot;) execution(void X.bar())" vm="14+"/>
+         <line text="@annotation-ok-sub @MyAnnotation(value=bar) execution(void X.bar())" vm="1.5-1.8"/>
+         <line text="@annotation-ok-sub @MyAnnotation(value=&quot;bar&quot;) execution(void X.bar())" vm="9-13"/>
+         <line text="@annotation-ok-sub @MyAnnotation(&quot;bar&quot;) execution(void X.bar())" vm="14-"/>
+         <line text="@annotation-ok @MyAnnotation(value=bar) execution(void X.bar())" vm="1.5-1.8"/>
+         <line text="@annotation-ok @MyAnnotation(value=&quot;bar&quot;) execution(void X.bar())" vm="9-13"/>
+         <line text="@annotation-ok @MyAnnotation(&quot;bar&quot;) execution(void X.bar())" vm="14-"/>
          <line text="target-ok an X execution(void X.bar())"/>
-         <line text="@this-ok @MyAnnotation(value=my-value) execution(void X.bar())" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@this-ok @MyAnnotation(value=&quot;my-value&quot;) execution(void X.bar())" vm="9,10,11,12,13"/>
-         <line text="@this-ok @MyAnnotation(&quot;my-value&quot;) execution(void X.bar())" vm="14+"/>
-         <line text="@target-ok @MyAnnotation(value=my-value) execution(void X.bar())" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@target-ok @MyAnnotation(value=&quot;my-value&quot;) execution(void X.bar())" vm="9,10,11,12,13"/>
-         <line text="@target-ok @MyAnnotation(&quot;my-value&quot;) execution(void X.bar())" vm="14+"/>
-         <line text="@within-ok @MyAnnotation(value=my-value) execution(void X.bar())" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@within-ok @MyAnnotation(value=&quot;my-value&quot;) execution(void X.bar())" vm="9,10,11,12,13"/>
-         <line text="@within-ok @MyAnnotation(&quot;my-value&quot;) execution(void X.bar())" vm="14+"/>
-         <line text="@args-ok @MyAnnotation(value=my-value) execution(void Y.foo(X))" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@args-ok @MyAnnotation(value=&quot;my-value&quot;) execution(void Y.foo(X))" vm="9,10,11,12,13"/>
-         <line text="@args-ok @MyAnnotation(&quot;my-value&quot;) execution(void Y.foo(X))" vm="14+"/>
+         <line text="@this-ok @MyAnnotation(value=my-value) execution(void X.bar())" vm="1.5-1.8"/>
+         <line text="@this-ok @MyAnnotation(value=&quot;my-value&quot;) execution(void X.bar())" vm="9-13"/>
+         <line text="@this-ok @MyAnnotation(&quot;my-value&quot;) execution(void X.bar())" vm="14-"/>
+         <line text="@target-ok @MyAnnotation(value=my-value) execution(void X.bar())" vm="1.5-1.8"/>
+         <line text="@target-ok @MyAnnotation(value=&quot;my-value&quot;) execution(void X.bar())" vm="9-13"/>
+         <line text="@target-ok @MyAnnotation(&quot;my-value&quot;) execution(void X.bar())" vm="14-"/>
+         <line text="@within-ok @MyAnnotation(value=my-value) execution(void X.bar())" vm="1.5-1.8"/>
+         <line text="@within-ok @MyAnnotation(value=&quot;my-value&quot;) execution(void X.bar())" vm="9-13"/>
+         <line text="@within-ok @MyAnnotation(&quot;my-value&quot;) execution(void X.bar())" vm="14-"/>
+         <line text="@args-ok @MyAnnotation(value=my-value) execution(void Y.foo(X))" vm="1.5-1.8"/>
+         <line text="@args-ok @MyAnnotation(value=&quot;my-value&quot;) execution(void Y.foo(X))" vm="9-13"/>
+         <line text="@args-ok @MyAnnotation(&quot;my-value&quot;) execution(void Y.foo(X))" vm="14-"/>
          <line text="args-ok an X execution(void Y.foo(X))"/>
          <line text="this-ok a Y execution(void Y.foo(X))"/>
-         <line text="@this-ok @MyAnnotation(value=on Y) execution(void Y.foo(X))" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@this-ok @MyAnnotation(value=&quot;on Y&quot;) execution(void Y.foo(X))" vm="9,10,11,12,13"/>
-         <line text="@this-ok @MyAnnotation(&quot;on Y&quot;) execution(void Y.foo(X))" vm="14+"/>
-         <line text="@target-ok @MyAnnotation(value=on Y) execution(void Y.foo(X))" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@target-ok @MyAnnotation(value=&quot;on Y&quot;) execution(void Y.foo(X))" vm="9,10,11,12,13"/>
-         <line text="@target-ok @MyAnnotation(&quot;on Y&quot;) execution(void Y.foo(X))" vm="14+"/>
-         <line text="@within-ok @MyAnnotation(value=on Y) execution(void Y.foo(X))" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@within-ok @MyAnnotation(value=&quot;on Y&quot;) execution(void Y.foo(X))" vm="9,10,11,12,13"/>
-         <line text="@within-ok @MyAnnotation(&quot;on Y&quot;) execution(void Y.foo(X))" vm="14+"/>
-         <line text="@annotation-ok-sub @MyAnnotation(value=my-value) execution(X Y.bar())" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@annotation-ok-sub @MyAnnotation(value=&quot;my-value&quot;) execution(X Y.bar())" vm="9,10,11,12,13"/>
-         <line text="@annotation-ok-sub @MyAnnotation(&quot;my-value&quot;) execution(X Y.bar())" vm="14+"/>
-         <line text="@annotation-ok @MyAnnotation(value=my-value) execution(X Y.bar())" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@annotation-ok @MyAnnotation(value=&quot;my-value&quot;) execution(X Y.bar())" vm="9,10,11,12,13"/>
-         <line text="@annotation-ok @MyAnnotation(&quot;my-value&quot;) execution(X Y.bar())" vm="14+"/>
+         <line text="@this-ok @MyAnnotation(value=on Y) execution(void Y.foo(X))" vm="1.5-1.8"/>
+         <line text="@this-ok @MyAnnotation(value=&quot;on Y&quot;) execution(void Y.foo(X))" vm="9-13"/>
+         <line text="@this-ok @MyAnnotation(&quot;on Y&quot;) execution(void Y.foo(X))" vm="14-"/>
+         <line text="@target-ok @MyAnnotation(value=on Y) execution(void Y.foo(X))" vm="1.5-1.8"/>
+         <line text="@target-ok @MyAnnotation(value=&quot;on Y&quot;) execution(void Y.foo(X))" vm="9-13"/>
+         <line text="@target-ok @MyAnnotation(&quot;on Y&quot;) execution(void Y.foo(X))" vm="14-"/>
+         <line text="@within-ok @MyAnnotation(value=on Y) execution(void Y.foo(X))" vm="1.5-1.8"/>
+         <line text="@within-ok @MyAnnotation(value=&quot;on Y&quot;) execution(void Y.foo(X))" vm="9-13"/>
+         <line text="@within-ok @MyAnnotation(&quot;on Y&quot;) execution(void Y.foo(X))" vm="14-"/>
+         <line text="@annotation-ok-sub @MyAnnotation(value=my-value) execution(X Y.bar())" vm="1.5-1.8"/>
+         <line text="@annotation-ok-sub @MyAnnotation(value=&quot;my-value&quot;) execution(X Y.bar())" vm="9-13"/>
+         <line text="@annotation-ok-sub @MyAnnotation(&quot;my-value&quot;) execution(X Y.bar())" vm="14-"/>
+         <line text="@annotation-ok @MyAnnotation(value=my-value) execution(X Y.bar())" vm="1.5-1.8"/>
+         <line text="@annotation-ok @MyAnnotation(value=&quot;my-value&quot;) execution(X Y.bar())" vm="9-13"/>
+         <line text="@annotation-ok @MyAnnotation(&quot;my-value&quot;) execution(X Y.bar())" vm="14-"/>
          <line text="this-ok a Y execution(X Y.bar())"/>
-         <line text="@this-ok @MyAnnotation(value=on Y) execution(X Y.bar())" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@this-ok @MyAnnotation(value=&quot;on Y&quot;) execution(X Y.bar())" vm="9,10,11,12,13"/>
-         <line text="@this-ok @MyAnnotation(&quot;on Y&quot;) execution(X Y.bar())" vm="14+"/>
-         <line text="@target-ok @MyAnnotation(value=on Y) execution(X Y.bar())" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@target-ok @MyAnnotation(value=&quot;on Y&quot;) execution(X Y.bar())" vm="9,10,11,12,13"/>
-         <line text="@target-ok @MyAnnotation(&quot;on Y&quot;) execution(X Y.bar())" vm="14+"/>
-         <line text="@within-ok @MyAnnotation(value=on Y) execution(X Y.bar())" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@within-ok @MyAnnotation(value=&quot;on Y&quot;) execution(X Y.bar())" vm="9,10,11,12,13"/>
-         <line text="@within-ok @MyAnnotation(&quot;on Y&quot;) execution(X Y.bar())" vm="14+"/>
-         <line text="@withincode-ok @MyAnnotation(value=my-value) get(X Y.x)" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@withincode-ok @MyAnnotation(value=&quot;my-value&quot;) get(X Y.x)" vm="9,10,11,12,13"/>
-         <line text="@withincode-ok @MyAnnotation(&quot;my-value&quot;) get(X Y.x)" vm="14+"/>
+         <line text="@this-ok @MyAnnotation(value=on Y) execution(X Y.bar())" vm="1.5-1.8"/>
+         <line text="@this-ok @MyAnnotation(value=&quot;on Y&quot;) execution(X Y.bar())" vm="9-13"/>
+         <line text="@this-ok @MyAnnotation(&quot;on Y&quot;) execution(X Y.bar())" vm="14-"/>
+         <line text="@target-ok @MyAnnotation(value=on Y) execution(X Y.bar())" vm="1.5-1.8"/>
+         <line text="@target-ok @MyAnnotation(value=&quot;on Y&quot;) execution(X Y.bar())" vm="9-13"/>
+         <line text="@target-ok @MyAnnotation(&quot;on Y&quot;) execution(X Y.bar())" vm="14-"/>
+         <line text="@within-ok @MyAnnotation(value=on Y) execution(X Y.bar())" vm="1.5-1.8"/>
+         <line text="@within-ok @MyAnnotation(value=&quot;on Y&quot;) execution(X Y.bar())" vm="9-13"/>
+         <line text="@within-ok @MyAnnotation(&quot;on Y&quot;) execution(X Y.bar())" vm="14-"/>
+         <line text="@withincode-ok @MyAnnotation(value=my-value) get(X Y.x)" vm="1.5-1.8"/>
+         <line text="@withincode-ok @MyAnnotation(value=&quot;my-value&quot;) get(X Y.x)" vm="9-13"/>
+         <line text="@withincode-ok @MyAnnotation(&quot;my-value&quot;) get(X Y.x)" vm="14-"/>
        </stdout>
      </run>
    </ajc-test>
index 8d8cd66b84356b4db0d7995beee7b2b7dde781cb..3588f5950ae1f2a924192b8c95494bc3471aacaa 100644 (file)
@@ -4,7 +4,7 @@
 <suite>
 
     <!-- atDecp begin -->
-   
+
     <!-- something simple -->
     <ajc-test dir="bugs151/atDecp/case1" title="atDecp - simple">
       <compile files="MainClass.java" options="-1.5 -showWeaveInfo">
@@ -20,7 +20,7 @@
          </stderr>
       </run>
     </ajc-test>
-    
+
     <!-- applying parent based on annotation -->
     <ajc-test dir="bugs151/atDecp/case2" title="atDecp - annotation">
       <compile files="MainClass.java" options="-1.5 -showWeaveInfo">
@@ -36,7 +36,7 @@
          </stderr>
       </run>
     </ajc-test>
-    
+
     <!-- when interface is binary -->
     <ajc-test dir="bugs151/atDecp/case3" title="atDecp - binary interface">
       <compile files="Mood.java,Moody.java" outjar="moody.jar" options="-1.5"/>
@@ -53,7 +53,7 @@
          </stderr>
       </run>
     </ajc-test>
-    
+
     <!-- when interface is binary and implementation is not an inner  -->
     <ajc-test dir="bugs151/atDecp/case4" title="atDecp - binary interface - 2">
       <compile files="Mood.java,Moody.java" outjar="moody.jar" options="-1.5"/>
@@ -70,7 +70,7 @@
          </stderr>
       </run>
     </ajc-test>
-    
+
     <!-- atDecp end -->
 
 
      <compile files="Failing.java" options="-1.5"/>
      <run class="Failing">
        <stderr>
-          <line text="On TestInterface:@TestAnnotation(value=true)" vm="1.5,1.6,1.7,1.8,9,10,11,12,13"/>
-          <line text="On TestInterface:@TestAnnotation(true)" vm="14+"/>
-          <line text="On Failing:@TestAnnotation(value=true)" vm="1.5,1.6,1.7,1.8,9,10,11,12,13"/>
-          <line text="On Failing:@TestAnnotation(true)" vm="14+"/>
+          <line text="On TestInterface:@TestAnnotation(value=true)" vm="1.5-13"/>
+          <line text="On TestInterface:@TestAnnotation(true)" vm="14-"/>
+          <line text="On Failing:@TestAnnotation(value=true)" vm="1.5-13"/>
+          <line text="On Failing:@TestAnnotation(true)" vm="14-"/>
        </stderr>
      </run>
     </ajc-test>
-    
+
     <ajc-test dir="bugs151/pr98901" title="annotations and itds - 2">
      <compile files="Failing2.java" options="-1.5"/>
      <run class="Failing2">
        <stderr>
-          <line text="On TestInterface:@TestAnnotation(value=true)" vm="1.5,1.6,1.7,1.8,9,10,11,12,13"/>
-          <line text="On TestInterface:@TestAnnotation(true)" vm="14+"/>
-          <line text="On Failing2:@TestAnnotation(value=true)" vm="1.5,1.6,1.7,1.8,9,10,11,12,13"/>
-          <line text="On Failing2:@TestAnnotation(true)" vm="14+"/>
+          <line text="On TestInterface:@TestAnnotation(value=true)" vm="1.5-13"/>
+          <line text="On TestInterface:@TestAnnotation(true)" vm="14-"/>
+          <line text="On Failing2:@TestAnnotation(value=true)" vm="1.5-13"/>
+          <line text="On Failing2:@TestAnnotation(true)" vm="14-"/>
        </stderr>
      </run>
     </ajc-test>
      <compile files="InputAnnotation.java" outjar="foo.jar" options="-1.5"/>
      <compile files="AffectedType.java" classpath="foo.jar" options="-1.5"/>
     </ajc-test>
-    
+
     <ajc-test dir="bugs151/pr132926" pr="132926" title="crashing on annotation type resolving with asm - 3">
      <compile files="InputAnnotation2.java" outjar="foo.jar" options="-1.5"/>
      <compile files="AffectedType.java" classpath="foo.jar" options="-1.5">
        <message kind="error" line="9" text="AffectedType is not a valid target for annotation InputAnnotation, this annotation can only be applied to these element types {METHOD}"/>
      </compile>
     </ajc-test>
-    
+
     <ajc-test dir="bugs151/pr133307" title="circular generics">
       <compile files="Broken.aj" options="-1.5"/>
-    </ajc-test>  
-    
+    </ajc-test>
+
     <ajc-test dir="bugs151/pr123553" title="generic advice parameters">
         <compile files="A.java" options="-1.5"/>
         <run class="A"/>
-    </ajc-test>  
-    
+    </ajc-test>
+
     <ajc-test dir="bugs151/pr133298" title="doubly annotating a method with declare">
       <compile files="DecA.java" options="-1.5"/>
       <run class="DecA">
         </stderr>
       </run>
     </ajc-test>
-    
+
     <ajc-test dir="bugs151/pr133298" title="doubly annotating a method with declare - 2">
       <compile files="DecA2.java" options="-1.5"/>
       <run class="DecA2">
         </stderr>
       </run>
     </ajc-test>
-    
+
      <ajc-test dir="bugs151/pr129566" title="arrayindexoutofbounds">
         <compile files="SkipList.java" options="-1.5"/>
-    </ajc-test>  
-    
+    </ajc-test>
+
     <ajc-test dir="bugs151" title="member types in generic types">
         <compile files="pr122458.aj" options="-1.5 -emacssym"/>
-    </ajc-test>  
-    
+    </ajc-test>
+
     <ajc-test dir="bugs151/pr127299" title="missing import gives funny message">
         <compile files="ModelErrorConversion.aj" options="-1.5"/>
     </ajc-test>
-      
+
     <ajc-test dir="bugs151/pr122742" title="@AJ VerifyError with @AfterThrowing and thisJoinPoint argument">
        <compile files="AfterThrowingTest.java" options="-1.5"/>
        <run class="AfterThrowingTest">
        <run class="AfterReturningTest">
        </run>
     </ajc-test>
-   
+
     <ajc-test dir="bugs151/pr120527" title="incorrect unused interface message">
         <compile files="Bugs.aj" options="-warn:unusedPrivate"/>
-    </ajc-test>  
-    
+    </ajc-test>
+
     <ajc-test dir="bugs151/pr123901" title="inlinevisitor NPE">
         <compile files="A.java,B.java" options="-1.5">
           <message kind="error" line="5" text="A cannot be resolved or is not a field"/>
         </compile>
     </ajc-test>
-    
+
     <ajc-test dir="bugs151" title="member types in generic types - 2">
         <compile files="pr122458_2.aj" options="-1.5 -emacssym"/>
         <run class="pr122458_2"/>
     </ajc-test>
-    
+
     <ajc-test dir="bugs151/pr123695" title="Internal nullptr exception with complex declare annotation">
         <compile files="InjectName.java,Main.java,MarkMyMethods.java,MarkMyMethodsAspect.java,NameAspect.java,Named.java,Read.java,Write.java" options="-1.5"/>
     </ajc-test>
-    
+
     <ajc-test dir="bugs151/pr124105" title="hasMember problems with packages">
         <compile files="com/test/IOption.java,com/test/IXOption.java,com/test/IYOption.java,com/test/IZOption.java,com/test/MyBrokenXOption.java,com/test/MyXOption.java,com/test/OptionAspect.aj,com/test/OptionType.java" options="-1.5 -XhasMember">
           <message kind="error" line="4" text="IOption implementations must provide a constructor which accepts an OptionType"/>
         </compile>
     </ajc-test>
-    
+
     <ajc-test dir="bugs151/pr124803" title="generics and different numbers of type variables">
         <compile files="Test.java,TestAspect.java" options="-1.5 -showWeaveInfo">
           <message kind="weave" text="Join point 'method-execution(void Test.foo(java.lang.Number))' in Type 'Test' (Test.java:12) advised by after advice from 'TestAspect' (TestAspect.java:4)"/>
           </stderr>
         </run>
     </ajc-test>
-    
+
     <ajc-test dir="bugs151/pr124803" title="generics and different numbers of type variables - classes">
         <compile files="Test2.java,TestAspect2.java" options="-1.5 -showWeaveInfo">
           <message kind="weave" text="Join point 'method-execution(void Test2.foo(java.lang.Number))' in Type 'Test2' (Test2.java:12) advised by after advice from 'TestAspect2' (TestAspect2.java:4)"/>
           </stderr>
         </run>
     </ajc-test>
-    
+
     <ajc-test dir="bugs151/pr124808" title="parameterized collection fields matched via pointcut">
         <compile files="Test.java,TestAspect.java" options="-1.5"/>
         <run class="Test">
           </stderr>
         </run>
     </ajc-test>
-    
+
     <ajc-test dir="bugs151" title="calling inherited generic method from around advice">
         <compile files="pr124999.aj" options="-1.5"/>
         <run class="pr124999"/>
     </ajc-test>
-    
+
     <ajc-test dir="bugs151/pr124654" title="generic aspects and annotations">
         <compile files="GenericAnnotation.java,TestSubAspect.java" options="-1.5"/>
         <run class="TestSubAspect">
           </stderr>
         </run>
     </ajc-test>
-    
+
     <ajc-test dir="bugs151" title="incorrectly referencing pointcuts">
         <compile files="pr122452.aj" options="-1.5">
           <message kind="warning" line="2" text="no match for this type name: Point [Xlint:invalidAbsoluteTypeName]"/>
           <message kind="error" line="4" text="Syntax error on token &quot;*&quot;, &quot;(&quot; expected"/>
         </compile>
     </ajc-test>
-    
+
     <ajc-test dir="bugs151" title="incorrectly referencing pointcuts - 2">
         <compile files="pr122452_2.aj" options="-1.5">
           <message kind="error" line="2" text="Syntax error on token &quot;*&quot;, &quot;(&quot; expected"/>
         </compile>
     </ajc-test>
-    
+
     <ajc-test dir="bugs151/pr125080" title="mixing numbers of type parameters">
         <compile files="Test.java" options="-1.5"/>
         <run class="ConcreteAspect"/>
     </ajc-test>
-    
+
     <ajc-test dir="bugs151/pr125080" title="mixing numbers of type parameters - 2">
         <compile files="Test2.java" options="-1.5"/>
         <run class="ConcreteAspect"/>
     <ajc-test dir="bugs151/pr125295" title="new IProgramElement methods">
         <compile files="pkg/C.java,pkg/A.aj" options="-emacssym"/>
     </ajc-test>
-    
+
     <ajc-test dir="bugs151/pr125475" title="define empty pointcut using an annotation">
         <compile files="TestEmptyPointcutAtAspect.java" options="-1.5"/>
     </ajc-test>
-    
+
     <ajc-test dir="bugs151/pr125475" title="define empty pointcut using an annotation - 2">
         <compile files="TestEmptyPointcutAtAspect2.java" options="-1.5 -showWeaveInfo">
           <message kind="warning" line="10" text="advice defined in TestEmptyPointcutAtAspect2 has not been applied [Xlint:adviceDidNotMatch]"/>
         <compile files="Test.java TestAspect.aj"/>
         <run class="Test" ltw="aop.xml"/>
     </ajc-test>
-    
+
     <ajc-test dir="bugs151/pr128744" title="broken ltw">
         <compile files="Hello.java World.java" options="-1.5" />
         <run class="Hello" ltw="aop.xml">
             </stdout>
         </run>
     </ajc-test>
-    
+
     <ajc-test dir="bugs151/pr125699" title="inherit advice with this() and thisJoinPoint">
         <compile files="Tracing.aj, TestTracing.aj, AtTestTracing.java" options="-1.5">
           <message kind="warning" line="13" text="advice defined in Tracing has not been applied [Xlint:adviceDidNotMatch]"/>
 
     <ajc-test dir="bugs151" title="E extends Enum(E) again">
         <compile files="Pr126316.aj" options="-1.5"/>
-    </ajc-test> 
+    </ajc-test>
 
     <ajc-test dir="bugs151" title="@AJ without JoinPoint import">
         <compile files="pr121616.java" options="-1.5">
             </stdout>
         </run>
     </ajc-test>
-    
+
     <ajc-test dir="bugs151" title="Pointcut interfaces">
         <compile files="pr130869.aj" options="-1.5">
           <message kind="warning" line="30" text="no directly runnable classes"/>
         <compile files="pr131933.aj" options="-1.5">
           <message kind="error" line="5" text="can't bind type name 'MyList'"/>
         </compile>
-    </ajc-test> 
+    </ajc-test>
 
     <!-- New features down here... when they arent big enough to have their own test file -->
-    
+
     <ajc-test dir="features151/ptw" title="exposing withintype">
         <compile files="ExposedType.java" options="-1.5"/>
         <run class="ExposedType">
             <line text="here I am execution(void ExposedTypeThree.foo()): for class ExposedTypeThree"/>
           </stderr>
         </run>
-    </ajc-test>  
-    
+    </ajc-test>
+
     <ajc-test dir="features151/swallowedExceptions" title="swallowed exceptions">
         <compile files="SwallowedException.java" options="-Xlint:warning">
             <message kind="warning" line="11" text="Exception swallowed in catch block"/>
         <compile files="SwallowedException.java">
         </compile>
     </ajc-test>
-</suite>
\ No newline at end of file
+</suite>
index a0d38cb6ccef50a436a56dc29d18703a21799570..8ed8e3ffcef1fcd3ba27d4fb3558c2444410ab2c 100644 (file)
@@ -27,8 +27,8 @@
      </compile>
      <run class="c.d.DistantResource">
      <stdout>
-       <line text="Annotation is @a.b.SimpleAnnotation(classname=oranges)" vm="1.2,1.3,1.4,1.5,1.6,1.7,1.8"/>
-       <line text="Annotation is @a.b.SimpleAnnotation(classname=&quot;oranges&quot;)" vm="9+"/>
+       <line text="Annotation is @a.b.SimpleAnnotation(classname=oranges)" vm="-1.8"/>
+       <line text="Annotation is @a.b.SimpleAnnotation(classname=&quot;oranges&quot;)" vm="9-"/>
      </stdout>
      </run>
    </ajc-test>
@@ -40,8 +40,8 @@
      </compile>
       <run class="c.d.DistantResource">
      <stdout>
-       <line text="Annotation is @a.b.SimpleAnnotation(classname=oranges)" vm="1.2,1.3,1.4,1.5,1.6,1.7,1.8"/>
-       <line text="Annotation is @a.b.SimpleAnnotation(classname=&quot;oranges&quot;)" vm="9+"/>
+       <line text="Annotation is @a.b.SimpleAnnotation(classname=oranges)" vm="-1.8"/>
+       <line text="Annotation is @a.b.SimpleAnnotation(classname=&quot;oranges&quot;)" vm="9-"/>
      </stdout>
      </run>
    </ajc-test>
@@ -53,8 +53,8 @@
      </compile>
      <run class="c.d.DistantResource">
      <stdout>
-       <line text="Annotation is @e.f.SimpleAnnotation2(classname=oranges)" vm="1.2,1.3,1.4,1.5,1.6,1.7,1.8"/>
-       <line text="Annotation is @e.f.SimpleAnnotation2(classname=&quot;oranges&quot;)" vm="9+"/>
+       <line text="Annotation is @e.f.SimpleAnnotation2(classname=oranges)" vm="-1.8"/>
+       <line text="Annotation is @e.f.SimpleAnnotation2(classname=&quot;oranges&quot;)" vm="9-"/>
      </stdout>
      </run>
    </ajc-test>
@@ -66,8 +66,8 @@
      </compile>
      <run class="c.d.DistantResource">
      <stdout>
-       <line text="Annotation is @e.f.SimpleAnnotation2(classname=oranges)" vm="1.2,1.3,1.4,1.5,1.6,1.7,1.8"/>
-       <line text="Annotation is @e.f.SimpleAnnotation2(classname=&quot;oranges&quot;)" vm="9+"/>
+       <line text="Annotation is @e.f.SimpleAnnotation2(classname=oranges)" vm="-1.8"/>
+       <line text="Annotation is @e.f.SimpleAnnotation2(classname=&quot;oranges&quot;)" vm="9-"/>
      </stdout>
      </run>
    </ajc-test>
@@ -80,8 +80,8 @@
      </compile>
      <run class="c.d.DistantResource">
      <stdout>
-       <line text="Annotation is @e.f.SimpleAnnotation2(classname=oranges)" vm="1.2,1.3,1.4,1.5,1.6,1.7,1.8"/>
-       <line text="Annotation is @e.f.SimpleAnnotation2(classname=&quot;oranges&quot;)" vm="9+"/>
+       <line text="Annotation is @e.f.SimpleAnnotation2(classname=oranges)" vm="-1.8"/>
+       <line text="Annotation is @e.f.SimpleAnnotation2(classname=&quot;oranges&quot;)" vm="9-"/>
      </stdout>
      </run>
    </ajc-test>
@@ -95,8 +95,8 @@
      </compile>
      <run class="c.d.DistantResource">
      <stdout>
-       <line text="Annotation is @e.f.SimpleAnnotation2(classname=oranges)" vm="1.2,1.3,1.4,1.5,1.6,1.7,1.8"/>
-       <line text="Annotation is @e.f.SimpleAnnotation2(classname=&quot;oranges&quot;)" vm="9+"/>
+       <line text="Annotation is @e.f.SimpleAnnotation2(classname=oranges)" vm="-1.8"/>
+       <line text="Annotation is @e.f.SimpleAnnotation2(classname=&quot;oranges&quot;)" vm="9-"/>
      </stdout>
      </run>
    </ajc-test>
index 91404263330c31a28d1b1adb7cc634262116f28b..86e13597924ada0d9d5fb712028cb0f3f4314bf2 100644 (file)
@@ -19,7 +19,7 @@
          </stdout>
        </run>
   </ajc-test>
-  
+
   <ajc-test dir="features1611/declareMinus" title="adding and removing">
        <compile files="OnOff.java" options="-1.5 -showWeaveInfo">
          <message kind="weave" text="'public int field2' of type 'OnOff' (OnOff.java) is annotated with @Anno field annotation from 'Foo' (OnOff.java:12)"/>
@@ -34,8 +34,8 @@
          </stdout>
        </run>
   </ajc-test>
-  
-  
+
+
   <ajc-test dir="features1611/declareMinus" title="adding and removing - 2">
        <compile files="OnOff2.java" options="-1.5 -showWeaveInfo">
          <message kind="weave" text="'public int field2' of type 'OnOff2' (OnOff2.java) is annotated with @Anno field annotation from 'Foo' (OnOff2.java:8)"/>
          </stdout>
        </run>
   </ajc-test>
-  
+
   <ajc-test dir="features1611/declareMinus" title="declare minus - 1">
        <compile files="Code.java" options="-1.5"/>
        <run class="Code">      <stdout>
        <line text="no annotation"/>
        </stdout></run>
   </ajc-test>
-  
+
   <ajc-test dir="features1611/declareMinus" title="declare minus - itd">
        <compile files="Code2.java" options="-1.5"/>
        <run class="Code2">
@@ -65,7 +65,7 @@
        <line text="no annotation"/>
        </stdout></run>
   </ajc-test>
-  
+
   <ajc-test dir="features1611/declareMinus" title="declare minus - 2 annos">
        <compile files="Code3.java" options="-1.5"/>
        <run class="Code3">
@@ -74,7 +74,7 @@
        <line text="has AnnoB"/>
        </stdout></run>
   </ajc-test>
-  
+
   <ajc-test dir="features1611/declareMinus" title="declare minus - multifiles">
        <compile files="aspectjtest/AnnotationA.java aspectjtest/AnnotationB.java aspectjtest/ExampleItd.aj aspectjtest/HelloTest.java aspectjtest/MyEntity.java" options="-1.5"/>
        <run class="aspectjtest.HelloTest">
@@ -83,7 +83,7 @@
        <line text="interface aspectjtest.AnnotationB"/>
        </stdout></run>
   </ajc-test>
-  
+
   <!--  different ordering -->
   <ajc-test dir="features1611/declareMinus" title="declare minus - multifiles - 2">
        <compile files="aspectjtest/MyEntity.java aspectjtest/AnnotationA.java aspectjtest/AnnotationB.java aspectjtest/ExampleItd.aj aspectjtest/HelloTest.java" options="-1.5"/>
        <line text="interface aspectjtest.AnnotationB"/>
        </stdout></run>
   </ajc-test>
-  
+
   <ajc-test dir="features1611/declareMinus" title="declare minus - with values">
     <compile files="WithValues.java" options="-1.5"/>
     <run class="WithValues">
     <stdout>
     <line text="i does not have Anno"/>
-    <line text="j has Banno:@Banno(hoo=abc)" vm="1.2,1.3,1.4,1.5,1.6,1.7,1.8"/>
-    <line text="j has Banno:@Banno(hoo=&quot;abc&quot;)" vm="9+"/>
+    <line text="j has Banno:@Banno(hoo=abc)" vm="-1.8"/>
+    <line text="j has Banno:@Banno(hoo=&quot;abc&quot;)" vm="9-"/>
     <line text="j does not have Anno"/>
     </stdout></run>
   </ajc-test>
-  
+
   <ajc-test dir="features1611/declareMinus" title="declare minus - unsupported">
     <compile files="Unsupported.java" options="-1.5">
         <message kind="error" line="19" text="Annotation removal only supported for declare @field (compiler limitation)"/>
         <message kind="error" line="21" text="Annotation removal does not allow values to be specified for the annotation (compiler limitation)"/>
     </compile>
   </ajc-test>
-  
+
   <ajc-test dir="features1611/declareMinus" title="binary weaving">
     <compile files="aspectjtest/AnnotationA.java aspectjtest/AnnotationB.java aspectjtest/MyEntity.java aspectjtest/HelloTest.java" outjar="code.jar" options="-1.5"/>
     <compile files="aspectjtest/ExampleItd.aj" inpath="code.jar" options="-1.5 -showWeaveInfo">
        <line text="interface aspectjtest.AnnotationB"/>
        </stdout></run>
   </ajc-test>
-  
+
 </suite>
index 838003df58cd309a6cd1b95ec91455c3d4cf2d6f..d7423a194c4862a932a0df90c6d4393d540baf20 100644 (file)
@@ -7,8 +7,8 @@
      <run class="AspectWithConstant">
      <stdout>
      <line text="MAX=9"/>
-     <line text="@AspectWithConstant$Loggable()" vm="1.2,1.3,1.4,1.5,1.6,1.7,1.8,9,10,11,12,13,14,15,16,17,18"/>
-     <line text="@AspectWithConstant.Loggable()" vm="19+"/>
+     <line text="@AspectWithConstant$Loggable()" vm="-18"/>
+     <line text="@AspectWithConstant.Loggable()" vm="19-"/>
      </stdout></run>
    </ajc-test>
 
 <compile files="AnnoBinding2.java" options="-1.5"/>
 <run class="AnnoBinding2">
 <stdout>
-<line text="get(int AnnoBinding2.field1) @Marker(message=foo)" vm="1.2,1.3,1.4,1.5,1.6,1.7,1.8"/>
-<line text="get(int AnnoBinding2.field1) @Marker(message=&quot;foo&quot;)" vm="9+"/>
-<line text="get(int AnnoBinding2.field2) @Marker(message=bar)" vm="1.2,1.3,1.4,1.5,1.6,1.7,1.8"/>
-<line text="get(int AnnoBinding2.field2) @Marker(message=&quot;bar&quot;)" vm="9+"/>
+<line text="get(int AnnoBinding2.field1) @Marker(message=foo)" vm="-1.8"/>
+<line text="get(int AnnoBinding2.field1) @Marker(message=&quot;foo&quot;)" vm="9-"/>
+<line text="get(int AnnoBinding2.field2) @Marker(message=bar)" vm="-1.8"/>
+<line text="get(int AnnoBinding2.field2) @Marker(message=&quot;bar&quot;)" vm="9-"/>
 <line text="2 ajc$anno$NNN fields"/>
 </stdout>
 </run>
index 5bb0155d350581440359c20591832d690c009f8e..e4dbec2fa4bd98d62ba552468604c19099e64d26 100644 (file)
      <run class="a.b.c.Runner">
        <stdout>
        <line text="wibble"/>
-       <line text="@a.b.c.RelatedType(value=class a.b.c.Vote$_$choice)" vm="1.2,1.3,1.4,1.5,1.6,1.7,1.8"/>
-       <line text="@a.b.c.RelatedType(value=a.b.c.Vote$_$choice.class)" vm="9,10,11,12,13"/>
-       <line text="@a.b.c.RelatedType(a.b.c.Vote$_$choice.class)" vm="14,15,16,17,18"/>
-       <line text="@a.b.c.RelatedType(a.b.c.Vote._.choice.class)" vm="19+"/>
+       <line text="@a.b.c.RelatedType(value=class a.b.c.Vote$_$choice)" vm="-1.8"/>
+       <line text="@a.b.c.RelatedType(value=a.b.c.Vote$_$choice.class)" vm="9-13"/>
+       <line text="@a.b.c.RelatedType(a.b.c.Vote$_$choice.class)" vm="14-18"/>
+       <line text="@a.b.c.RelatedType(a.b.c.Vote._.choice.class)" vm="19-"/>
        </stdout>
      </run>
    </ajc-test>
      <run class="a.b.c.Runner">
        <stdout>
        <line text="wibble"/>
-       <line text="@a.b.c.RelatedType(value=class a.b.c.Vote$_$choice)" vm="1.2,1.3,1.4,1.5,1.6,1.7,1.8"/>
-       <line text="@a.b.c.RelatedType(value=a.b.c.Vote$_$choice.class)" vm="9,10,11,12,13"/>
-       <line text="@a.b.c.RelatedType(a.b.c.Vote$_$choice.class)" vm="14,15,16,17,18"/>
-       <line text="@a.b.c.RelatedType(a.b.c.Vote._.choice.class)" vm="19+"/>
+       <line text="@a.b.c.RelatedType(value=class a.b.c.Vote$_$choice)" vm="-1.8"/>
+       <line text="@a.b.c.RelatedType(value=a.b.c.Vote$_$choice.class)" vm="9-13"/>
+       <line text="@a.b.c.RelatedType(a.b.c.Vote$_$choice.class)" vm="14-18"/>
+       <line text="@a.b.c.RelatedType(a.b.c.Vote._.choice.class)" vm="19-"/>
        </stdout>
      </run>
    </ajc-test>
      <run class="a.b.c.Runner">
        <stdout>
        <line text="wibble"/>
-       <line text="@a.b.c.RelatedType(value=class a.b.c.Vote$_$choice)" vm="1.2,1.3,1.4,1.5,1.6,1.7,1.8"/>
-       <line text="@a.b.c.RelatedType(value=a.b.c.Vote$_$choice.class)" vm="9,10,11,12,13"/>
-       <line text="@a.b.c.RelatedType(a.b.c.Vote$_$choice.class)" vm="14,15,16,17,18"/>
-       <line text="@a.b.c.RelatedType(a.b.c.Vote._.choice.class)" vm="19+"/>
+       <line text="@a.b.c.RelatedType(value=class a.b.c.Vote$_$choice)" vm="-1.8"/>
+       <line text="@a.b.c.RelatedType(value=a.b.c.Vote$_$choice.class)" vm="9-13"/>
+       <line text="@a.b.c.RelatedType(a.b.c.Vote$_$choice.class)" vm="14-18"/>
+       <line text="@a.b.c.RelatedType(a.b.c.Vote._.choice.class)" vm="19-"/>
        </stdout>
      </run>
    </ajc-test>
      <run class="a.b.c.Runner">
        <stdout>
        <line text="wibble"/>
-       <line text="@a.b.c.RelatedType(value=class a.b.c.Vote$_$choice)" vm="1.2,1.3,1.4,1.5,1.6,1.7,1.8"/>
-       <line text="@a.b.c.RelatedType(value=a.b.c.Vote$_$choice.class)" vm="9,10,11,12,13"/>
-       <line text="@a.b.c.RelatedType(a.b.c.Vote$_$choice.class)" vm="14,15,16,17,18"/>
-       <line text="@a.b.c.RelatedType(a.b.c.Vote._.choice.class)" vm="19+"/>
+       <line text="@a.b.c.RelatedType(value=class a.b.c.Vote$_$choice)" vm="-1.8"/>
+       <line text="@a.b.c.RelatedType(value=a.b.c.Vote$_$choice.class)" vm="9-13"/>
+       <line text="@a.b.c.RelatedType(a.b.c.Vote$_$choice.class)" vm="14-18"/>
+       <line text="@a.b.c.RelatedType(a.b.c.Vote._.choice.class)" vm="19-"/>
        </stdout>
      </run>
    </ajc-test>
      <run class="a.b.c.Runner">
        <stdout>
        <line text="wibble"/>
-       <line text="@a.b.c.RelatedType(value=class a.b.c.Vote$_$choice)" vm="1.2,1.3,1.4,1.5,1.6,1.7,1.8"/>
-       <line text="@a.b.c.RelatedType(value=a.b.c.Vote$_$choice.class)" vm="9,10,11,12,13"/>
-       <line text="@a.b.c.RelatedType(a.b.c.Vote$_$choice.class)" vm="14,15,16,17,18"/>
-       <line text="@a.b.c.RelatedType(a.b.c.Vote._.choice.class)" vm="19+"/>
+       <line text="@a.b.c.RelatedType(value=class a.b.c.Vote$_$choice)" vm="-1.8"/>
+       <line text="@a.b.c.RelatedType(value=a.b.c.Vote$_$choice.class)" vm="9-13"/>
+       <line text="@a.b.c.RelatedType(a.b.c.Vote$_$choice.class)" vm="14-18"/>
+       <line text="@a.b.c.RelatedType(a.b.c.Vote._.choice.class)" vm="19-"/>
        </stdout>
      </run>
    </ajc-test>
      <run class="a.b.c.Runner">
        <stdout>
        <line text="wibble"/>
-       <line text="@a.b.c.RelatedType(value=class a.b.c.Vote$_$choice)" vm="1.2,1.3,1.4,1.5,1.6,1.7,1.8"/>
-       <line text="@a.b.c.RelatedType(value=a.b.c.Vote$_$choice.class)" vm="9,10,11,12,13"/>
-       <line text="@a.b.c.RelatedType(a.b.c.Vote$_$choice.class)" vm="14,15,16,17,18"/>
-       <line text="@a.b.c.RelatedType(a.b.c.Vote._.choice.class)" vm="19+"/>
+       <line text="@a.b.c.RelatedType(value=class a.b.c.Vote$_$choice)" vm="-1.8"/>
+       <line text="@a.b.c.RelatedType(value=a.b.c.Vote$_$choice.class)" vm="9-13"/>
+       <line text="@a.b.c.RelatedType(a.b.c.Vote$_$choice.class)" vm="14-18"/>
+       <line text="@a.b.c.RelatedType(a.b.c.Vote._.choice.class)" vm="19-"/>
        </stdout>
      </run>
    </ajc-test>
      <run class="a.b.c.Runner">
        <stdout>
        <line text="wibble"/>
-       <line text="@a.b.c.RelatedType(value=class a.b.c.Vote$_)" vm="1.2,1.3,1.4,1.5,1.6,1.7,1.8"/>
-       <line text="@a.b.c.RelatedType(value=a.b.c.Vote$_.class)" vm="9,10,11,12,13"/>
-       <line text="@a.b.c.RelatedType(a.b.c.Vote$_.class)" vm="14,15,16,17,18"/>
-       <line text="@a.b.c.RelatedType(a.b.c.Vote._.class)" vm="19+"/>
+       <line text="@a.b.c.RelatedType(value=class a.b.c.Vote$_)" vm="-1.8"/>
+       <line text="@a.b.c.RelatedType(value=a.b.c.Vote$_.class)" vm="9-13"/>
+       <line text="@a.b.c.RelatedType(a.b.c.Vote$_.class)" vm="14-18"/>
+       <line text="@a.b.c.RelatedType(a.b.c.Vote._.class)" vm="19-"/>
        </stdout>
      </run>
    </ajc-test>
index f3f18f6d9556c7165d582f415e1266c4bb7275cd..5fe1c9ffa7053dac2a9adc67dce1c40755060fcd 100644 (file)
            <line text="Annotations on field1? true"/>
            <line text="Annotation count is 4"/>
            <line text="@AnnoBoolean(value=true, zzz=false)"/>
-           <line text="@AnnoClass(value=class java.lang.Integer, ccc=class java.lang.String)" vm="1.2,1.3,1.4,1.5,1.6,1.7,1.8"/>
-           <line text="@AnnoClass(value=java.lang.Integer.class, ccc=java.lang.String.class)" vm="9+"/>
-           <line text="@AnnoLong(value=999L, jjj=111L)" vm="14+"/>
-           <line text="@AnnoLong(value=999, jjj=111)" vm="1.2,1.3,1.4,1.5,1.6,1.6,1.8,9,10,11,12,13"/>
-           <line text="@AnnoString(value=set from xml, sss=xyz)" vm="1.2,1.3,1.4,1.5,1.6,1.7,1.8"/>
-           <line text="@AnnoString(value=&quot;set from xml&quot;, sss=&quot;xyz&quot;)" vm="9+"/>
+           <line text="@AnnoClass(value=class java.lang.Integer, ccc=class java.lang.String)" vm="-1.8"/>
+           <line text="@AnnoClass(value=java.lang.Integer.class, ccc=java.lang.String.class)" vm="9-"/>
+           <line text="@AnnoLong(value=999L, jjj=111L)" vm="14-"/>
+           <line text="@AnnoLong(value=999, jjj=111)" vm="-13"/>
+           <line text="@AnnoString(value=set from xml, sss=xyz)" vm="-1.8"/>
+           <line text="@AnnoString(value=&quot;set from xml&quot;, sss=&quot;xyz&quot;)" vm="9-"/>
            <line text="Annotations on field2? true"/>
            <line text="Annotation count is 1"/>
-           <line text="@AnnoClass(value=class java.lang.String, ccc=class java.lang.String)"  vm="1.2,1.3,1.4,1.5,1.6,1.7,1.8"/>
-           <line text="@AnnoClass(value=java.lang.String.class, ccc=java.lang.String.class)" vm="9+"/>
+           <line text="@AnnoClass(value=class java.lang.String, ccc=class java.lang.String)"  vm="-1.8"/>
+           <line text="@AnnoClass(value=java.lang.String.class, ccc=java.lang.String.class)" vm="9-"/>
        </stdout>
      </run>
    </ajc-test>
        <stdout>
            <line text="Annotations on field1? true"/>
            <line text="Annotation count is 4"/>
-           <line text="@AnnoChar(value=z, ccc=a)" vm="1.2,1.3,1.4,1.5,1.6,1.7,1.8"/>
-           <line text="@AnnoChar(value='z', ccc='a')" vm="9+"/>
+           <line text="@AnnoChar(value=z, ccc=a)" vm="-1.8"/>
+           <line text="@AnnoChar(value='z', ccc='a')" vm="9-"/>
            <line text="@AnnoDouble(value=99.0,ddd=3.0)"/>
-           <line text="@AnnoFloat(value=6.0, fff=4.0)" vm="1.2,1.3,1.4,1.5,1.6,1.7,1.8"/>
-           <line text="@AnnoFloat(value=6.0f, fff=4.0f)" vm="9+"/>
+           <line text="@AnnoFloat(value=6.0, fff=4.0)" vm="-1.8"/>
+           <line text="@AnnoFloat(value=6.0f, fff=4.0f)" vm="9-"/>
            <line text="@AnnoShort(value=8, sss=3)"/>
            <line text="Annotations on field2? true"/>
            <line text="Annotation count is 2"/>
-           <line text="@AnnoByte(value=88, bbb=66)" vm="1.2,1.3,1.4,1.5,1.6,1.7,1.8,9,10,11,12,13"/>
-           <line text="@AnnoByte(value=(byte)0x58, bbb=(byte)0x42)" vm="14+"/>
+           <line text="@AnnoByte(value=88, bbb=66)" vm="-13"/>
+           <line text="@AnnoByte(value=(byte)0x58, bbb=(byte)0x42)" vm="14-"/>
            <line text="@AnnoInt(iii=111, value=99)"/>
        </stdout>
      </run>
        <stdout>
            <line text="Annotations on field1? true"/>
            <line text="Annotation count is 1"/>
-           <line text="@Annot(a=a, fred=false, value=abc)" vm="1.2,1.3,1.4,1.5,1.6,1.7,1.8"/>
-           <line text="@Annot(a='a', fred=false, value=&quot;abc&quot;)" vm="9+"/>
+           <line text="@Annot(a=a, fred=false, value=abc)" vm="-1.8"/>
+           <line text="@Annot(a='a', fred=false, value=&quot;abc&quot;)" vm="9-"/>
        </stdout>
      </run>
    </ajc-test>
        <stdout>
            <line text="Annotations on field1? true"/>
            <line text="Annotation count is 1"/>
-           <line text="@Annot(a=a, fred=false, value=abc)" vm="1.4,1.5,1.6,1.7,1.8"/>
-           <line text="@Annot(a='a', fred=false, value=&quot;abc&quot;)" vm="9+"/>
+           <line text="@Annot(a=a, fred=false, value=abc)" vm="1.4-1.8"/>
+           <line text="@Annot(a='a', fred=false, value=&quot;abc&quot;)" vm="9-"/>
        </stdout>
      </run>
    </ajc-test>
index 398fae62fb571d0bb8a5a550f5d99f43c99e816a..a60fca98cfe46f9707836ec4019ac1f7e69ac4e1 100644 (file)
@@ -5,40 +5,40 @@
        <ajc-test dir="bugs173/pr407739" title="add remove annos">
                <compile files="MyAnnotation.java Hello.java Aspect.java" options="-1.5 -showWeaveInfo">
                        <message kind="weave" text="'private String dummy [RuntimeVisibleAnnotations]' of type 'Hello' (Hello.java) has had @MyAnnotation field annotation removed by 'Aspect' (Aspect.java:3)"/>
-                       <message kind="weave" text="'private String dummy [RuntimeVisibleAnnotations]' of type 'Hello' (Hello.java) is annotated with @MyAnnotation(dummy2 = &quot;korte&quot;) field annotation from 'Aspect' (Aspect.java:4)"/>               
+                       <message kind="weave" text="'private String dummy [RuntimeVisibleAnnotations]' of type 'Hello' (Hello.java) is annotated with @MyAnnotation(dummy2 = &quot;korte&quot;) field annotation from 'Aspect' (Aspect.java:4)"/>
                </compile>
                <run class="Hello">
                <stdout>
-               <line text="@MyAnnotation(dummy1=, dummy2=korte)" vm="1.2,1.3,1.4,1.5,1.6,1.7,1.8"/>
-               <line text="@MyAnnotation(dummy1=&quot;&quot;, dummy2=&quot;korte&quot;)" vm="9+"/>
+               <line text="@MyAnnotation(dummy1=, dummy2=korte)" vm="-1.8"/>
+               <line text="@MyAnnotation(dummy1=&quot;&quot;, dummy2=&quot;korte&quot;)" vm="9-"/>
                </stdout>
                </run>
        </ajc-test>
-       
+
        <ajc-test dir="bugs173/pr408014" title="inner interface mixin">
-               <compile files="IdentifiableMixin.java" options="-1.5 -showWeaveInfo">          
+               <compile files="IdentifiableMixin.java" options="-1.5 -showWeaveInfo">
                </compile>
        </ajc-test>
-       
+
        <ajc-test dir="bugs173/pr407966" title="ordering">
                <compile files="Aspect.aj Use.java Def.java" options="-1.5 -showWeaveInfo">
                </compile>
        </ajc-test>
 
        <ajc-test dir="bugs173/pr407494" title="inner names">
-               <compile files="A.java" options="-1.5 -showWeaveInfo">          
+               <compile files="A.java" options="-1.5 -showWeaveInfo">
                        <message kind="weave" text="Join point 'staticinitialization(void a.b.c.A$B.&lt;clinit&gt;())' in Type 'a.b.c.A$B' (A.java:4) advised by before advice from 'a.b.c.X' (A.java:13)"/>
                        <message kind="weave" text="Join point 'staticinitialization(void a.b.c.A.&lt;clinit&gt;())' in Type 'a.b.c.A' (A.java:3) advised by before advice from 'a.b.c.X' (A.java:13)"/>
                        <message kind="weave" text="Join point 'staticinitialization(void a.b.c.A$$C.&lt;clinit&gt;())' in Type 'a.b.c.A$$C' (A.java:6) advised by before advice from 'a.b.c.X' (A.java:13)"/>
                </compile>
        </ajc-test>
-       
+
        <ajc-test dir="bugs173/pr407494" title="inner names 2">
-               <compile files="A2.java" options="-1.5 -showWeaveInfo">         
+               <compile files="A2.java" options="-1.5 -showWeaveInfo">
                        <message kind="weave" text="Join point 'staticinitialization(void a.b.c.A$$B$$C.&lt;clinit&gt;())' in Type 'a.b.c.A$$B$$C' (A2.java:10) advised by before advice from 'a.b.c.X' (A2.java:14)"/>
                </compile>
        </ajc-test>
-       
+
        <ajc-test dir="bugs173/pr405016/one" title="class anno value 1">
                <compile files="Gimme.java Thingy.java" options="-1.5 -showWeaveInfo">
                        <message kind="weave" text="Extending interface set for type 'Thingy' (Thingy.java) to include 'java.io.Serializable' (Thingy.java)"/>
@@ -49,7 +49,7 @@
                        </stdout>
                </run>
        </ajc-test>
-       
+
        <ajc-test dir="bugs173/pr405016" title="class anno value">
                <compile files="Gimme.java Thingy.java" options="-1.5 -showWeaveInfo">
                        <message kind="weave" text="Extending interface set for type 'Thingy' (Thingy.java) to include 'java.io.Serializable' (Thingy.java)"/>
@@ -60,7 +60,7 @@
                        </stdout>
                </run>
        </ajc-test>
-       
+
        <ajc-test dir="bugs173/pr404601" title="abstract method error">
                <compile files="user/IUser.java user/Test.java user/UserTrait.java user/Youser.java" options="-1.5">
                        <message kind="error" text="private intertype declaration 'void UserTrait$I.testSetUsername(java.lang.String)' clashes with public member 'void Youser.testSetUsername(java.lang.String)'"/>
                <message kind="weave" text="Type 'Intface' (Code.java) has intertyped method from 'A' (Code.java:'void Intface.getName()')"/>
       </compile>
     </ajc-test>
-    
+
        <ajc-test dir="bugs173/lyor/2" title="declare anno on itd 2">
                <compile files="A1.java" outjar="aspects1.jar" options="-1.5 -Xlint:ignore"/>
                <compile files="Intface.java A2.java" aspectpath="aspects1.jar" outjar="aspects2.jar" options="-1.5"/>
                <compile files="Code.java" aspectpath="aspects1.jar;aspects2.jar" options="-1.5"/>
-               
-      <!-- 
+
+      <!--
        <message kind="weave" text="'public void Intface.getName()' (A2.java) is annotated with @Foo method annotation from 'A1' (A1.java:7)"/>
                <message kind="weave" text="Type 'C' (Code.java) has intertyped method from 'A2' (A2.java:'void Intface.getName()')"/>
                <message kind="weave" text="Type 'Intface' (Code.java) has intertyped method from 'A2' (A2.java:'void Intface.getName()')"/>
index 00a0166fab4d193607033f4dcdaad55b095d0ec5..39f694209da157b59020933de401a6a275d67e4d 100644 (file)
@@ -55,7 +55,7 @@
                </stdout>
                </run>
        </ajc-test>
-       
+
        <!-- declared with throws exception -->
        <ajc-test dir="bugs174/pr418129" title="annotated itd 2">
                <compile files="Target2.java" options="-1.5 -showWeaveInfo">
@@ -69,7 +69,7 @@
                </stdout>
                </run>
        </ajc-test>
-       
+
        <!-- already annotated with another annotation -->
        <ajc-test dir="bugs174/pr418129" title="annotated itd 3">
                <compile files="Target3.java" options="-1.5 -showWeaveInfo">
                </stdout>
                </run>
        </ajc-test>
-       
+
        <!-- already annotated with the same annotation -->
        <ajc-test dir="bugs174/pr418129" title="annotated itd 4">
                <compile files="Target4.java" options="-1.5 -showWeaveInfo">
                        <message kind="weave" text="Type 'Behavior' (Target4.java) has intertyped method from 'Trait' (Target4.java:'java.lang.String Behavior.hello()')"/>
                        <message kind="weave" text="Type 'Target4' (Target4.java) has intertyped method from 'Trait' (Target4.java:'java.lang.String Behavior.hello()')"/>
                        <!--  warning turned off as it gets confusing - when the itd on the interface is hit by a deca -->
-                       <!-- 
+                       <!--
                        <message kind="warning" text="java.lang.String Target4.hello() - already has an annotation of type Tagged, cannot add a second instance [Xlint:elementAlreadyAnnotated]"/>
                        -->
                </compile>
                <run class="Target4">
                <stdout>
                <line text="1"/>
-               <line text="@Tagged(value=31)" vm="1.5,1.6,1.7,1.8,9,10,11,12,13"/>
-               <line text="@Tagged(31)" vm="14+"/>
+               <line text="@Tagged(value=31)" vm="1.5-13"/>
+               <line text="@Tagged(31)" vm="14-"/>
                </stdout>
                </run>
        </ajc-test>
-       
+
        <ajc-test dir="bugs174/pr413378" title="super itd ctor">
                <compile files="Code.java" options="-1.5 -showWeaveInfo">
                        <message kind="weave" text="Type 'Child' (Code.java) has intertyped constructor from 'MyTest' (Code.java:'void Child.&lt;init&gt;(java.lang.String, int)')"/>
                </stdout>
                </run>
        </ajc-test>
-       
+
        <ajc-test dir="bugs174/pr368046" title="classloader exclusion - 1">
          <compile files="Azpect.java" outjar="foo.jar" options="-1.4"/>
       <compile files="Code.java" classpath="$sandbox/foo.jar"/>
            </stderr>
       </run>
        </ajc-test>
-       
+
        <ajc-test dir="bugs174/pr368046" title="classloader exclusion - 2">
          <compile files="Azpect.java" outjar="foo.jar" options="-1.4"/>
       <compile files="Code.java" classpath="$sandbox/foo.jar"/>
            </stderr>
       </run>
        </ajc-test>
-       
+
        <ajc-test dir="bugs174/pr368046" title="classloader exclusion - 3">
          <compile files="Azpect.java" outjar="foo.jar" options="-1.4"/>
       <compile files="Code.java" classpath="$sandbox/foo.jar"/>
            </stderr>
       </run>
        </ajc-test>
-       
+
        <ajc-test dir="bugs174/pr368046" title="classloader exclusion - 4">
          <compile files="Azpect.java" outjar="foo.jar" options="-1.4"/>
       <compile files="Code.java" classpath="$sandbox/foo.jar"/>
            </stderr>
       </run>
        </ajc-test>
-       
+
        <ajc-test dir="bugs174/pr368046" title="classloader exclusion - 5">
          <compile files="Azpect.java" outjar="foo.jar" options="-1.4"/>
       <compile files="Code.java" classpath="$sandbox/foo.jar"/>
index 7e7f9ba71dc7b4aa4a7e9fa4154583bbd44f9876..8aa734e3e769b01e2b7605539b2d3836b3f81793 100644 (file)
@@ -8,8 +8,8 @@
      <run class="AspectWithConstant">
      <stdout>
      <line text="MAXS=hello"/>
-     <line text="@AspectWithConstant$Loggable()" vm="1.2,1.3,1.4,1.5,1.6,1.7,1.8,9,10,11,12,13,14,15,16,17,18"/>
-     <line text="@AspectWithConstant.Loggable()" vm="19+"/>
+     <line text="@AspectWithConstant$Loggable()" vm="-18"/>
+     <line text="@AspectWithConstant.Loggable()" vm="19-"/>
      </stdout></run>
    </ajc-test>
 
index 885a0b74e72a289cea4235532212d838e4f1a205..dede00f0a3c40d6e3caa78aee2886c69039c3f55 100644 (file)
               <line text="@target(Classified) at call(Class java.lang.Object.getClass())"/>
               <line text="1 @Foo()"/>
               <line text="1 @Foo()"/>
-              <line text="1 @Classified(classification=TOP-SECRET)" vm="1.2,1.3,1.4,1.5,1.6,1.7,1.8"/>
-              <line text="1 @Classified(classification=&quot;TOP-SECRET&quot;)" vm="9+"/>
+              <line text="1 @Classified(classification=TOP-SECRET)" vm="-1.8"/>
+              <line text="1 @Classified(classification=&quot;TOP-SECRET&quot;)" vm="9-"/>
               <line text="This information is TOP-SECRET"/>
               <line text="Entering critical join point with priority 3"/>
               <line text="Entering critical join point with reflectively obtained priority 3"/>
      <run class="GenericAspectRuntimePointcuts">
        <stdout>
          <line text="target-ok an X execution(void X.foo())"/>
-         <line text="@this-ok @MyAnnotation(value=my-value) execution(void X.foo())" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@this-ok @MyAnnotation(value=&quot;my-value&quot;) execution(void X.foo())" vm="9,10,11,12,13"/>
-         <line text="@this-ok @MyAnnotation(&quot;my-value&quot;) execution(void X.foo())" vm="14+"/>
-         <line text="@target-ok @MyAnnotation(value=my-value) execution(void X.foo())" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@target-ok @MyAnnotation(value=&quot;my-value&quot;) execution(void X.foo())" vm="9,10,11,12,13"/>
-         <line text="@target-ok @MyAnnotation(&quot;my-value&quot;) execution(void X.foo())" vm="14+"/>
-         <line text="@within-ok @MyAnnotation(value=my-value) execution(void X.foo())" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@within-ok @MyAnnotation(value=&quot;my-value&quot;) execution(void X.foo())" vm="9,10,11,12,13"/>
-         <line text="@within-ok @MyAnnotation(&quot;my-value&quot;) execution(void X.foo())" vm="14+"/>
+         <line text="@this-ok @MyAnnotation(value=my-value) execution(void X.foo())" vm="1.5-1.8"/>
+         <line text="@this-ok @MyAnnotation(value=&quot;my-value&quot;) execution(void X.foo())" vm="9-13"/>
+         <line text="@this-ok @MyAnnotation(&quot;my-value&quot;) execution(void X.foo())" vm="14-"/>
+         <line text="@target-ok @MyAnnotation(value=my-value) execution(void X.foo())" vm="1.5-1.8"/>
+         <line text="@target-ok @MyAnnotation(value=&quot;my-value&quot;) execution(void X.foo())" vm="9-13"/>
+         <line text="@target-ok @MyAnnotation(&quot;my-value&quot;) execution(void X.foo())" vm="14-"/>
+         <line text="@within-ok @MyAnnotation(value=my-value) execution(void X.foo())" vm="1.5-1.8"/>
+         <line text="@within-ok @MyAnnotation(value=&quot;my-value&quot;) execution(void X.foo())" vm="9-13"/>
+         <line text="@within-ok @MyAnnotation(&quot;my-value&quot;) execution(void X.foo())" vm="14-"/>
          <line text="cflow-ok an X a Y set(Y X.y)"/>
-         <line text="@annotation-ok-sub @MyAnnotation(value=bar) execution(void X.bar())" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@annotation-ok-sub @MyAnnotation(value=&quot;bar&quot;) execution(void X.bar())" vm="9,10,11,12,13"/>
-         <line text="@annotation-ok-sub @MyAnnotation(&quot;bar&quot;) execution(void X.bar())" vm="14+"/>
-         <line text="@annotation-ok @MyAnnotation(value=bar) execution(void X.bar())" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@annotation-ok @MyAnnotation(value=&quot;bar&quot;) execution(void X.bar())" vm="9,10,11,12,13"/>
-         <line text="@annotation-ok @MyAnnotation(&quot;bar&quot;) execution(void X.bar())" vm="14+"/>
+         <line text="@annotation-ok-sub @MyAnnotation(value=bar) execution(void X.bar())" vm="1.5-1.8"/>
+         <line text="@annotation-ok-sub @MyAnnotation(value=&quot;bar&quot;) execution(void X.bar())" vm="9-13"/>
+         <line text="@annotation-ok-sub @MyAnnotation(&quot;bar&quot;) execution(void X.bar())" vm="14-"/>
+         <line text="@annotation-ok @MyAnnotation(value=bar) execution(void X.bar())" vm="1.5-1.8"/>
+         <line text="@annotation-ok @MyAnnotation(value=&quot;bar&quot;) execution(void X.bar())" vm="9-13"/>
+         <line text="@annotation-ok @MyAnnotation(&quot;bar&quot;) execution(void X.bar())" vm="14-"/>
          <line text="target-ok an X execution(void X.bar())"/>
-         <line text="@this-ok @MyAnnotation(value=my-value) execution(void X.bar())" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@this-ok @MyAnnotation(value=&quot;my-value&quot;) execution(void X.bar())" vm="9,10,11,12,13"/>
-         <line text="@this-ok @MyAnnotation(&quot;my-value&quot;) execution(void X.bar())" vm="14+"/>
-         <line text="@target-ok @MyAnnotation(value=my-value) execution(void X.bar())" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@target-ok @MyAnnotation(value=&quot;my-value&quot;) execution(void X.bar())" vm="9,10,11,12,13"/>
-         <line text="@target-ok @MyAnnotation(&quot;my-value&quot;) execution(void X.bar())" vm="14+"/>
-         <line text="@within-ok @MyAnnotation(value=my-value) execution(void X.bar())" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@within-ok @MyAnnotation(value=&quot;my-value&quot;) execution(void X.bar())" vm="9,10,11,12,13"/>
-         <line text="@within-ok @MyAnnotation(&quot;my-value&quot;) execution(void X.bar())" vm="14+"/>
-         <line text="@args-ok @MyAnnotation(value=my-value) execution(void Y.foo(X))" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@args-ok @MyAnnotation(value=&quot;my-value&quot;) execution(void Y.foo(X))" vm="9,10,11,12,13"/>
-         <line text="@args-ok @MyAnnotation(&quot;my-value&quot;) execution(void Y.foo(X))" vm="14+"/>
+         <line text="@this-ok @MyAnnotation(value=my-value) execution(void X.bar())" vm="1.5-1.8"/>
+         <line text="@this-ok @MyAnnotation(value=&quot;my-value&quot;) execution(void X.bar())" vm="9-13"/>
+         <line text="@this-ok @MyAnnotation(&quot;my-value&quot;) execution(void X.bar())" vm="14-"/>
+         <line text="@target-ok @MyAnnotation(value=my-value) execution(void X.bar())" vm="1.5-1.8"/>
+         <line text="@target-ok @MyAnnotation(value=&quot;my-value&quot;) execution(void X.bar())" vm="9-13"/>
+         <line text="@target-ok @MyAnnotation(&quot;my-value&quot;) execution(void X.bar())" vm="14-"/>
+         <line text="@within-ok @MyAnnotation(value=my-value) execution(void X.bar())" vm="1.5-1.8"/>
+         <line text="@within-ok @MyAnnotation(value=&quot;my-value&quot;) execution(void X.bar())" vm="9-13"/>
+         <line text="@within-ok @MyAnnotation(&quot;my-value&quot;) execution(void X.bar())" vm="14-"/>
+         <line text="@args-ok @MyAnnotation(value=my-value) execution(void Y.foo(X))" vm="1.5-1.8"/>
+         <line text="@args-ok @MyAnnotation(value=&quot;my-value&quot;) execution(void Y.foo(X))" vm="9-13"/>
+         <line text="@args-ok @MyAnnotation(&quot;my-value&quot;) execution(void Y.foo(X))" vm="14-"/>
          <line text="args-ok an X execution(void Y.foo(X))"/>
          <line text="this-ok a Y execution(void Y.foo(X))"/>
-         <line text="@this-ok @MyAnnotation(value=on Y) execution(void Y.foo(X))" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@this-ok @MyAnnotation(value=&quot;on Y&quot;) execution(void Y.foo(X))" vm="9,10,11,12,13"/>
-         <line text="@this-ok @MyAnnotation(&quot;on Y&quot;) execution(void Y.foo(X))" vm="14+"/>
-         <line text="@target-ok @MyAnnotation(value=on Y) execution(void Y.foo(X))" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@target-ok @MyAnnotation(value=&quot;on Y&quot;) execution(void Y.foo(X))" vm="9,10,11,12,13"/>
-         <line text="@target-ok @MyAnnotation(&quot;on Y&quot;) execution(void Y.foo(X))" vm="14+"/>
-         <line text="@within-ok @MyAnnotation(value=on Y) execution(void Y.foo(X))" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@within-ok @MyAnnotation(value=&quot;on Y&quot;) execution(void Y.foo(X))" vm="9,10,11,12,13"/>
-         <line text="@within-ok @MyAnnotation(&quot;on Y&quot;) execution(void Y.foo(X))" vm="14+"/>
-         <line text="@annotation-ok-sub @MyAnnotation(value=my-value) execution(X Y.bar())" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@annotation-ok-sub @MyAnnotation(value=&quot;my-value&quot;) execution(X Y.bar())" vm="9,10,11,12,13"/>
-         <line text="@annotation-ok-sub @MyAnnotation(&quot;my-value&quot;) execution(X Y.bar())" vm="14+"/>
-         <line text="@annotation-ok @MyAnnotation(value=my-value) execution(X Y.bar())" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@annotation-ok @MyAnnotation(value=&quot;my-value&quot;) execution(X Y.bar())" vm="9,10,11,12,13"/>
-         <line text="@annotation-ok @MyAnnotation(&quot;my-value&quot;) execution(X Y.bar())" vm="14+"/>
+         <line text="@this-ok @MyAnnotation(value=on Y) execution(void Y.foo(X))" vm="1.5-1.8"/>
+         <line text="@this-ok @MyAnnotation(value=&quot;on Y&quot;) execution(void Y.foo(X))" vm="9-13"/>
+         <line text="@this-ok @MyAnnotation(&quot;on Y&quot;) execution(void Y.foo(X))" vm="14-"/>
+         <line text="@target-ok @MyAnnotation(value=on Y) execution(void Y.foo(X))" vm="1.5-1.8"/>
+         <line text="@target-ok @MyAnnotation(value=&quot;on Y&quot;) execution(void Y.foo(X))" vm="9-13"/>
+         <line text="@target-ok @MyAnnotation(&quot;on Y&quot;) execution(void Y.foo(X))" vm="14-"/>
+         <line text="@within-ok @MyAnnotation(value=on Y) execution(void Y.foo(X))" vm="1.5-1.8"/>
+         <line text="@within-ok @MyAnnotation(value=&quot;on Y&quot;) execution(void Y.foo(X))" vm="9-13"/>
+         <line text="@within-ok @MyAnnotation(&quot;on Y&quot;) execution(void Y.foo(X))" vm="14-"/>
+         <line text="@annotation-ok-sub @MyAnnotation(value=my-value) execution(X Y.bar())" vm="1.5-1.8"/>
+         <line text="@annotation-ok-sub @MyAnnotation(value=&quot;my-value&quot;) execution(X Y.bar())" vm="9-13"/>
+         <line text="@annotation-ok-sub @MyAnnotation(&quot;my-value&quot;) execution(X Y.bar())" vm="14-"/>
+         <line text="@annotation-ok @MyAnnotation(value=my-value) execution(X Y.bar())" vm="1.5-1.8"/>
+         <line text="@annotation-ok @MyAnnotation(value=&quot;my-value&quot;) execution(X Y.bar())" vm="9-13"/>
+         <line text="@annotation-ok @MyAnnotation(&quot;my-value&quot;) execution(X Y.bar())" vm="14-"/>
          <line text="this-ok a Y execution(X Y.bar())"/>
-         <line text="@this-ok @MyAnnotation(value=on Y) execution(X Y.bar())" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@this-ok @MyAnnotation(value=&quot;on Y&quot;) execution(X Y.bar())" vm="9,10,11,12,13"/>
-         <line text="@this-ok @MyAnnotation(&quot;on Y&quot;) execution(X Y.bar())" vm="14+"/>
-         <line text="@target-ok @MyAnnotation(value=on Y) execution(X Y.bar())" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@target-ok @MyAnnotation(value=&quot;on Y&quot;) execution(X Y.bar())" vm="9,10,11,12,13"/>
-         <line text="@target-ok @MyAnnotation(&quot;on Y&quot;) execution(X Y.bar())" vm="14+"/>
-         <line text="@within-ok @MyAnnotation(value=on Y) execution(X Y.bar())" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@within-ok @MyAnnotation(value=&quot;on Y&quot;) execution(X Y.bar())" vm="9,10,11,12,13"/>
-         <line text="@within-ok @MyAnnotation(&quot;on Y&quot;) execution(X Y.bar())" vm="14+"/>
-         <line text="@withincode-ok @MyAnnotation(value=my-value) get(X Y.x)" vm="1.5,1.6,1.7,1.8"/>
-         <line text="@withincode-ok @MyAnnotation(value=&quot;my-value&quot;) get(X Y.x)" vm="9,10,11,12,13"/>
-         <line text="@withincode-ok @MyAnnotation(&quot;my-value&quot;) get(X Y.x)" vm="14+"/>
+         <line text="@this-ok @MyAnnotation(value=on Y) execution(X Y.bar())" vm="1.5-1.8"/>
+         <line text="@this-ok @MyAnnotation(value=&quot;on Y&quot;) execution(X Y.bar())" vm="9-13"/>
+         <line text="@this-ok @MyAnnotation(&quot;on Y&quot;) execution(X Y.bar())" vm="14-"/>
+         <line text="@target-ok @MyAnnotation(value=on Y) execution(X Y.bar())" vm="1.5-1.8"/>
+         <line text="@target-ok @MyAnnotation(value=&quot;on Y&quot;) execution(X Y.bar())" vm="9-13"/>
+         <line text="@target-ok @MyAnnotation(&quot;on Y&quot;) execution(X Y.bar())" vm="14-"/>
+         <line text="@within-ok @MyAnnotation(value=on Y) execution(X Y.bar())" vm="1.5-1.8"/>
+         <line text="@within-ok @MyAnnotation(value=&quot;on Y&quot;) execution(X Y.bar())" vm="9-13"/>
+         <line text="@within-ok @MyAnnotation(&quot;on Y&quot;) execution(X Y.bar())" vm="14-"/>
+         <line text="@withincode-ok @MyAnnotation(value=my-value) get(X Y.x)" vm="1.5-1.8"/>
+         <line text="@withincode-ok @MyAnnotation(value=&quot;my-value&quot;) get(X Y.x)" vm="9-13"/>
+         <line text="@withincode-ok @MyAnnotation(&quot;my-value&quot;) get(X Y.x)" vm="14-"/>
        </stdout>
      </run>
    </ajc-test>