diff options
author | aclement <aclement> | 2008-12-09 21:06:08 +0000 |
---|---|---|
committer | aclement <aclement> | 2008-12-09 21:06:08 +0000 |
commit | da08b5a5c309ea75fe64c5394bf9e2d88268aef5 (patch) | |
tree | d551747a7c860a6def9702970299cc5891246e13 | |
parent | 72c5435bc264ecb853a7a35cb998627745fb41d8 (diff) | |
download | aspectj-da08b5a5c309ea75fe64c5394bf9e2d88268aef5.tar.gz aspectj-da08b5a5c309ea75fe64c5394bf9e2d88268aef5.zip |
more tests
-rw-r--r-- | weaver5/java5-testsrc/org/aspectj/weaver/ReferenceTypeTestCase.java | 395 |
1 files changed, 226 insertions, 169 deletions
diff --git a/weaver5/java5-testsrc/org/aspectj/weaver/ReferenceTypeTestCase.java b/weaver5/java5-testsrc/org/aspectj/weaver/ReferenceTypeTestCase.java index 7af73d784..6377b693a 100644 --- a/weaver5/java5-testsrc/org/aspectj/weaver/ReferenceTypeTestCase.java +++ b/weaver5/java5-testsrc/org/aspectj/weaver/ReferenceTypeTestCase.java @@ -471,178 +471,235 @@ public class ReferenceTypeTestCase extends TestCase { ReferenceType ajListOfInteger = resolve("Pjava/util/List<Ljava/lang/Integer;>;"); ReferenceType ajListOfNumber = resolve("Pjava/util/List<Ljava/lang/Number;>;"); - // - // // void around(): execution(* C.m4(..)) && args(List<Integer>){} //: - // Should not match (but it does) ERROR - // // void around(): execution(* C.m4(..)) && args(ArrayList<Integer>){}//: - // Should not match (but it does) ERROR - // // void around(): execution(* C.m4(..)) && args(List<Number>){}//: Should - // not match (but it does) ERROR - // // void around(): execution(* C.m4(..)) && args(ArrayList<Number>){}//: - // Should not match (but it does) ERROR - // // void around(): execution(* C.m4(..)) && args(List<? extends - // Number>){}//: Should not match (but it does) ERROR - // // void around(): execution(* C.m4(..)) && args(ArrayList<? extends - // Number>){}//: Should not match (but it does!) ERROR - // // void around(): execution(* C.m4(..)) && args(List){}//: Should match - // (it does) - // // void around(): execution(* C.m4(..)) && args(ArrayList){}//: Should - // runtime check (it does!) - // // void around(): execution(* C.m4(..)) && args(List<?>){}//: Should - // match (it does) - // // void around(): execution(* C.m4(..)) && args(ArrayList<?>){}//: Should - // runtime check (it does!) - // // void around(): execution(* C.m4(..)) && args(ArrayList<String>){}//: - // Should not match (it does not match!) - // - // // void around(): execution(* C.m5(..)) && args(List<Integer>){} //: - // Should not match (but it does) ERROR - // // void around(): execution(* C.m5(..)) && args(ArrayList<Integer>){}//: - // Should not match (but it does!) ERROR - // // void around(): execution(* C.m5(..)) && args(List<Number>){}//: Should - // not match (but it does!) ERROR - // // void around(): execution(* C.m5(..)) && args(ArrayList<Number>){}//: - // Should not match (it does) ERROR - // // void around(): execution(* C.m5(..)) && args(List<? extends - // Number>){}//: Should match (it does) - // // void around(): execution(* C.m5(..)) && args(ArrayList<? extends - // Number>){}//: Should runtime check (it does!) - // // void around(): execution(* C.m5(..)) && args(List){}//: Should match - // (it does) - // // void around(): execution(* C.m5(..)) && args(ArrayList){}//: Should - // runtime check (it does not match!) ERROR - // // void around(): execution(* C.m5(..)) && args(List<?>){}//: Should - // match (it does) - // // void around(): execution(* C.m5(..)) && args(ArrayList<?>){}//: Should - // runtime check (it does not match!) - // // void around(): execution(* C.m5(..)) && args(ArrayList<String>){}//: - // Should not match (it does not match!) - // - // // void around(): execution(* D2.m5(..)) && args(List<D1>){} //: Should - // not match (but it does) ERROR - // // void around(): execution(* D2.m5(..)) && args(ArrayList<D1>){}//: - // Should not match (but it does!) ERROR - // // void around(): execution(* D2.m5(..)) && args(List<C1>){}//: Should - // not match (but it does!) ERROR - // // void around(): execution(* D2.m5(..)) && args(ArrayList<C1>){}//: - // Should not match (it does) ERROR - // // void around(): execution(* D2.m5(..)) && args(List<? extends B1>){}//: - // Should match (it does) - // // void around(): execution(* D2.m5(..)) && args(ArrayList<? extends - // B1>){}//: Should runtime check (it does!) - // // void around(): execution(* D2.m5(..)) && args(List<? extends C1>){}//: - // Should match (it does) - // // void around(): execution(* D2.m5(..)) && args(ArrayList<? extends - // C1>){}//: Should runtime check (it does!) - // // void around(): execution(* D2.m5(..)) && args(List){}//: Should match - // (it does) - // // void around(): execution(* D2.m5(..)) && args(ArrayList){}//: Should - // runtime check (it does not match!) ERROR - // // void around(): execution(* D2.m5(..)) && args(List<?>){}//: Should - // match (it does) - // // void around(): execution(* D2.m5(..)) && args(ArrayList<?>){}//: - // Should runtime check (it does not match!) - // // void around(): execution(* D2.m5(..)) && args(ArrayList<String>){}//: - // Should not match (it does not match!) - // - // // void around(): execution(* C.m6(..)) && args(List<Integer>){} //: - // Should not match (but it does) ERROR - // // void around(): execution(* C.m6(..)) && args(ArrayList<Integer>){}//: - // Should not match (but it does!) ERROR - // // void around(): execution(* C.m6(..)) && args(List<Number>){}//: Should - // not match (but it does!) ERROR - // // void around(): execution(* C.m6(..)) && args(ArrayList<Number>){}//: - // Should not match (it does) ERROR - // // void around(): execution(* C.m6(..)) && args(List<? extends - // Number>){}//: Should match (it does) - // // void around(): execution(* C.m6(..)) && args(ArrayList<? extends - // Number>){}//: Should runtime check (it does!) - // // void around(): execution(* C.m6(..)) && args(List){}//: Should match - // (it does) - // // void around(): execution(* C.m6(..)) && args(ArrayList){}//: Should - // runtime check (it does not match!) - // // void around(): execution(* C.m6(..)) && args(List<?>){}//: Should - // match (it does) - // // void around(): execution(* C.m6(..)) && args(ArrayList<?>){}//: Should - // runtime check (it does not match!) - // // void around(): execution(* C.m6(..)) && args(ArrayList<String>){}//: - // Should not match (it does not match!) - // - // // void around(): execution(* C.m7(..)) && args(List<List<Integer>>){} - // //: Should not match (but it does) ERROR - // // void around(): execution(* C.m7(..)) && - // args(ArrayList<List<Integer>>){}//: Should not match (but it does!) ERROR - // // void around(): execution(* C.m7(..)) && args(List<List<Number>>){}//: - // Should not match (but it does!) ERROR - // // void around(): execution(* C.m7(..)) && - // args(ArrayList<List<Number>>){}//: Should not match (but it does) ERROR - // // void around(): execution(* C.m7(..)) && args(List<? extends - // List<Number>>){}//: Should not match (but it does) ERROR - // // void around(): execution(* C.m7(..)) && args(ArrayList< ? extends - // List<Number>>){}//: Should not match (but it does!) ERROR - // // void around(): execution(* C.m7(..)) && args(List< ? extends List<? - // extends Number>>){}//: Should match (it does!) - // // void around(): execution(* C.m7(..)) && args(ArrayList< ? extends - // List<? extends Number>>){}//: Should match (it does!) - // // void around(): execution(* C.m7(..)) && args(List){}//: Should match - // (it does) - // // void around(): execution(* C.m7(..)) && args(ArrayList){}//: Should - // runtime check (it does not match!) - // // void around(): execution(* C.m7(..)) && args(List<?>){}//: Should - // match (it does) - // // void around(): execution(* C.m7(..)) && args(ArrayList<?>){}//: Should - // runtime check (it does!) - // // void around(): execution(* C.m7(..)) && - // args(ArrayList<List<String>>){}//: Should not match (it does not match!) - // - // // void around(): execution(* C.m8(..)) && args(List<Integer>){} //: - // Should match with unchecked conversion (it does) - // // void around(): execution(* C.m8(..)) && args(ArrayList<Integer>){}//: - // Should runtime check with unchecked conversion (it does!) - // // void around(): execution(* C.m8(..)) && args(List<Number>){}//: Should - // match with unchecked conversion (it does!) - // // void around(): execution(* C.m8(..)) && args(ArrayList<Number>){}//: - // Should runtime check with unchecked conversion (it does) - // // void around(): execution(* C.m8(..)) && args(List<? extends - // Number>){}//: Should match with unchecked conversion (it does!) - // // void around(): execution(* C.m8(..)) && args(ArrayList<? extends - // Number>){}//: Should runtime check with unchecked conversion (it does) - // // void around(): execution(* C.m8(..)) && args(List){}//: Should match - // (it does) - // // void around(): execution(* C.m8(..)) && args(ArrayList){}//: Should - // runtime check (it does!) - // // void around(): execution(* C.m8(..)) && args(List<?>){}//: Should - // match (it does) - // // void around(): execution(* C.m8(..)) && args(ArrayList<?>){}//: Should - // runtime check (it does!) - // // void around(): execution(* C.m8(..)) && args(ArrayList<String>){}//: - // Should not match (it does not match!) - // - // // void around(): execution(* C.m9(..)) && args(List<Integer>){} //: - // Should not match (but it does) ERROR - // // void around(): execution(* C.m9(..)) && args(ArrayList<Integer>){}//: - // Should not match (it does not match!) - // // void around(): execution(* C.m9(..)) && args(Number){}//: Should match - // (it does!) - // // void around(): execution(* C.m9(..)) && args(Integer){}//: Should - // runtime check (it does) - // // void around(): execution(* C.m9(..)) && args(List<? extends - // Number>){}//: Should not match (but it does) ERROR - // // void around(): execution(* C.m9(..)) && args(ArrayList<? extends - // Number>){}//: Should not match (it does not match!) - // // void around(): execution(* C.m9(..)) && args(List){}//: Should not - // match (but it does) ERROR - // // void around(): execution(* C.m9(..)) && args(ArrayList){}//: Should - // not match (it does not match!) - // // void around(): execution(* C.m9(..)) && args(List<?>){}//: Should not - // match (but it does) ERROR - // // void around(): execution(* C.m9(..)) && args(ArrayList<?>){}//: Should - // not match (it does not match!) - // // void around(): execution(* C.m9(..)) && args(String){}//: Should not - // match (it does not match!) + // void m4(List<?> e) {} + + // void around(): execution(* C.m4(..)) && args(List<Integer>){} //: Should match with unchecked warning + listOfInteger = (List<Integer>) listOfSomething; + assertFalse(ajListOfInteger.isAssignableFrom(ajListOfSomething)); + assertTrue(ajListOfInteger.isCoerceableFrom(ajListOfSomething)); + + // void around(): execution(* C.m4(..)) && args(ArrayList<Integer>){} // Should match with unchecked warning + arraylistOfInteger = (ArrayList<Integer>) listOfSomething; + assertFalse(ajArrayListOfInteger.isAssignableFrom(ajListOfSomething)); + assertTrue(ajArrayListOfInteger.isCoerceableFrom(ajListOfSomething)); + + // void around(): execution(* C.m4(..)) && args(List<Number>){} // Should match with unchecked warning + listOfNumber = (List<Number>) listOfSomething; + assertFalse(ajListOfNumber.isAssignableFrom(ajListOfSomething)); + assertTrue(ajListOfNumber.isCoerceableFrom(ajListOfSomething)); + + // void around(): execution(* C.m4(..)) && args(ArrayList<Number>){} // Should match with unchecked warning + arrayListOfNumber = (ArrayList<Number>) listOfSomething; + assertFalse(ajArrayListOfNumber.isAssignableFrom(ajListOfSomething)); + assertTrue(ajArrayListOfNumber.isCoerceableFrom(ajListOfSomething)); + + // void around(): execution(* C.m4(..)) && args(List<? extends Number>){} // Should match with unchecked warning + listOfSomethingNumberish = (List<? extends Number>) listOfSomething; + assertFalse(ajListOfSomethingNumberish.isAssignableFrom(ajListOfSomething)); + assertTrue(ajListOfSomethingNumberish.isCoerceableFrom(ajListOfSomething)); + + // void around(): execution(* C.m4(..)) && args(ArrayList<? extends Number>){} // Should match with unchecked warning + arrayListOfSomethingNumberish = (ArrayList<? extends Number>) listOfSomething; + assertFalse(ajArrayListOfSomethingNumberish.isAssignableFrom(ajListOfSomething)); + assertTrue(ajArrayListOfSomethingNumberish.isCoerceableFrom(ajListOfSomething)); + + // void around(): execution(* C.m4(..)) && args(List){} // Should match + list = listOfSomething; + assertTrue(ajList.isAssignableFrom(ajListOfSomething)); + + // void around(): execution(* C.m4(..)) && args(ArrayList){} // Should runtime check + arraylist = (ArrayList) listOfSomething; + assertFalse(ajArrayList.isAssignableFrom(ajListOfSomething)); + assertTrue(ajArrayList.isCoerceableFrom(ajListOfSomething)); + + // void around(): execution(* C.m4(..)) && args(List<?>){}//: Should match + list = listOfSomething; + assertTrue(ajList.isAssignableFrom(ajListOfSomething)); + + // void around(): execution(* C.m4(..)) && args(ArrayList<?>){} // Should runtime check + arrayListOfSomething = (ArrayList<?>) listOfSomething; + assertFalse(ajArrayListOfSomething.isAssignableFrom(ajListOfSomething)); + assertTrue(ajArrayListOfSomething.isCoerceableFrom(ajListOfSomething)); + + // void around(): execution(* C.m4(..)) && args(ArrayList<String>){} // Should match with unchecked warning + arrayListOfString = (ArrayList<String>) listOfSomething; + assertFalse(ajArrayListOfString.isAssignableFrom(ajListOfSomething)); + assertTrue(ajArrayListOfString.isCoerceableFrom(ajListOfSomething)); } + // public void testAssignable_method_m5() { + // List list = new ArrayList(); + // ArrayList arraylist = null; + // List<String> listOfString = new ArrayList<String>(); + // List<?> listOfSomething = new ArrayList<Integer>(); + // ArrayList<?> arrayListOfSomething = null; + // List<Number> listOfNumber = null; + // ArrayList<Number> arrayListOfNumber = null; + // ArrayList<? extends Number> arrayListOfSomethingNumberish = null; + // List<? extends Number> listOfSomethingNumberish = new ArrayList<Integer>(); + // List<? super Double> listOfSomethingSuperDouble = new ArrayList<Number>(); + // List<Integer> listOfInteger = new ArrayList<Integer>(); + // ArrayList<String> arrayListOfString; + // ArrayList<Integer> arraylistOfInteger; + // // interfaces too List<? extends A,B> + // + // ReferenceType ajArrayListOfString = resolve("Pjava/util/ArrayList<Ljava/lang/String;>;"); + // ReferenceType ajArrayListOfInteger = resolve("Pjava/util/ArrayList<Ljava/lang/Integer;>;"); + // ReferenceType ajArrayListOfNumber = resolve("Pjava/util/ArrayList<Ljava/lang/Number;>;"); + // ReferenceType ajArrayListOfSomethingNumberish = resolve("Pjava/util/ArrayList<+Ljava/lang/Number;>;"); + // ReferenceType ajList = resolve("Ljava/util/List;"); + // ReferenceType ajArrayList = resolve("Ljava/util/ArrayList;"); + // ReferenceType ajListOfString = resolve("Pjava/util/List<Ljava/lang/String;>;"); + // ReferenceType ajListOfSomething = resolve("Pjava/util/List<*>;"); + // ReferenceType ajArrayListOfSomething = resolve("Pjava/util/ArrayList<*>;"); + // ReferenceType ajListOfSomethingNumberish = resolve("Pjava/util/List<+Ljava/lang/Number;>;"); + // ReferenceType ajListOfSomethingSuperDouble = resolve("Pjava/util/List<-Ljava/lang/Double;>;"); + // ReferenceType ajListOfInteger = resolve("Pjava/util/List<Ljava/lang/Integer;>;"); + // ReferenceType ajListOfNumber = resolve("Pjava/util/List<Ljava/lang/Number;>;"); + // ReferenceType ajListOfEextendsNumber = resolve("Pjava/util/List<+TE") + // + // // class C<E extends Number> { + // // void m5(List<E> e) { } + // // + // // void around(): execution(* C.m5(..)) && args(List<Integer>){} Should not match (but it does) ERROR + // + // // void around(): execution(* C.m5(..)) && args(ArrayList<Integer>){}//: Should not match (but it does!) ERROR + // // void around(): execution(* C.m5(..)) && args(List<Number>){}//: Should not match (but it does!) ERROR + // // void around(): execution(* C.m5(..)) && args(ArrayList<Number>){}//: Should not match (it does) ERROR + // // void around(): execution(* C.m5(..)) && args(List<? extends Number>){}//: Should match (it does) + // // void around(): execution(* C.m5(..)) && args(ArrayList<? extends Number>){}//: Should runtime check (it does!) + // // void around(): execution(* C.m5(..)) && args(List){}//: Should match (it does) + // // void around(): execution(* C.m5(..)) && args(ArrayList){}//: Should runtime check (it does not match!) ERROR + // // void around(): execution(* C.m5(..)) && args(List<?>){}//: Should match (it does) + // // void around(): execution(* C.m5(..)) && args(ArrayList<?>){}//: Should runtime check (it does not match!) + // // void around(): execution(* C.m5(..)) && args(ArrayList<String>){}//: Should not match (it does not match!) + // // + // // // void around(): execution(* D2.m5(..)) && args(List<D1>){} //: Should + // // not match (but it does) ERROR + // // // void around(): execution(* D2.m5(..)) && args(ArrayList<D1>){}//: + // // Should not match (but it does!) ERROR + // // // void around(): execution(* D2.m5(..)) && args(List<C1>){}//: Should + // // not match (but it does!) ERROR + // // // void around(): execution(* D2.m5(..)) && args(ArrayList<C1>){}//: + // // Should not match (it does) ERROR + // // // void around(): execution(* D2.m5(..)) && args(List<? extends B1>){}//: + // // Should match (it does) + // // // void around(): execution(* D2.m5(..)) && args(ArrayList<? extends + // // B1>){}//: Should runtime check (it does!) + // // // void around(): execution(* D2.m5(..)) && args(List<? extends C1>){}//: + // // Should match (it does) + // // // void around(): execution(* D2.m5(..)) && args(ArrayList<? extends + // // C1>){}//: Should runtime check (it does!) + // // // void around(): execution(* D2.m5(..)) && args(List){}//: Should match + // // (it does) + // // // void around(): execution(* D2.m5(..)) && args(ArrayList){}//: Should + // // runtime check (it does not match!) ERROR + // // // void around(): execution(* D2.m5(..)) && args(List<?>){}//: Should + // // match (it does) + // // // void around(): execution(* D2.m5(..)) && args(ArrayList<?>){}//: + // // Should runtime check (it does not match!) + // // // void around(): execution(* D2.m5(..)) && args(ArrayList<String>){}//: + // // Should not match (it does not match!) + // // + // // // void around(): execution(* C.m6(..)) && args(List<Integer>){} //: + // // Should not match (but it does) ERROR + // // // void around(): execution(* C.m6(..)) && args(ArrayList<Integer>){}//: + // // Should not match (but it does!) ERROR + // // // void around(): execution(* C.m6(..)) && args(List<Number>){}//: Should + // // not match (but it does!) ERROR + // // // void around(): execution(* C.m6(..)) && args(ArrayList<Number>){}//: + // // Should not match (it does) ERROR + // // // void around(): execution(* C.m6(..)) && args(List<? extends + // // Number>){}//: Should match (it does) + // // // void around(): execution(* C.m6(..)) && args(ArrayList<? extends + // // Number>){}//: Should runtime check (it does!) + // // // void around(): execution(* C.m6(..)) && args(List){}//: Should match + // // (it does) + // // // void around(): execution(* C.m6(..)) && args(ArrayList){}//: Should + // // runtime check (it does not match!) + // // // void around(): execution(* C.m6(..)) && args(List<?>){}//: Should + // // match (it does) + // // // void around(): execution(* C.m6(..)) && args(ArrayList<?>){}//: Should + // // runtime check (it does not match!) + // // // void around(): execution(* C.m6(..)) && args(ArrayList<String>){}//: + // // Should not match (it does not match!) + // // + // // // void around(): execution(* C.m7(..)) && args(List<List<Integer>>){} + // // //: Should not match (but it does) ERROR + // // // void around(): execution(* C.m7(..)) && + // // args(ArrayList<List<Integer>>){}//: Should not match (but it does!) ERROR + // // // void around(): execution(* C.m7(..)) && args(List<List<Number>>){}//: + // // Should not match (but it does!) ERROR + // // // void around(): execution(* C.m7(..)) && + // // args(ArrayList<List<Number>>){}//: Should not match (but it does) ERROR + // // // void around(): execution(* C.m7(..)) && args(List<? extends + // // List<Number>>){}//: Should not match (but it does) ERROR + // // // void around(): execution(* C.m7(..)) && args(ArrayList< ? extends + // // List<Number>>){}//: Should not match (but it does!) ERROR + // // // void around(): execution(* C.m7(..)) && args(List< ? extends List<? + // // extends Number>>){}//: Should match (it does!) + // // // void around(): execution(* C.m7(..)) && args(ArrayList< ? extends + // // List<? extends Number>>){}//: Should match (it does!) + // // // void around(): execution(* C.m7(..)) && args(List){}//: Should match + // // (it does) + // // // void around(): execution(* C.m7(..)) && args(ArrayList){}//: Should + // // runtime check (it does not match!) + // // // void around(): execution(* C.m7(..)) && args(List<?>){}//: Should + // // match (it does) + // // // void around(): execution(* C.m7(..)) && args(ArrayList<?>){}//: Should + // // runtime check (it does!) + // // // void around(): execution(* C.m7(..)) && + // // args(ArrayList<List<String>>){}//: Should not match (it does not match!) + // // + // // // void around(): execution(* C.m8(..)) && args(List<Integer>){} //: + // // Should match with unchecked conversion (it does) + // // // void around(): execution(* C.m8(..)) && args(ArrayList<Integer>){}//: + // // Should runtime check with unchecked conversion (it does!) + // // // void around(): execution(* C.m8(..)) && args(List<Number>){}//: Should + // // match with unchecked conversion (it does!) + // // // void around(): execution(* C.m8(..)) && args(ArrayList<Number>){}//: + // // Should runtime check with unchecked conversion (it does) + // // // void around(): execution(* C.m8(..)) && args(List<? extends + // // Number>){}//: Should match with unchecked conversion (it does!) + // // // void around(): execution(* C.m8(..)) && args(ArrayList<? extends + // // Number>){}//: Should runtime check with unchecked conversion (it does) + // // // void around(): execution(* C.m8(..)) && args(List){}//: Should match + // // (it does) + // // // void around(): execution(* C.m8(..)) && args(ArrayList){}//: Should + // // runtime check (it does!) + // // // void around(): execution(* C.m8(..)) && args(List<?>){}//: Should + // // match (it does) + // // // void around(): execution(* C.m8(..)) && args(ArrayList<?>){}//: Should + // // runtime check (it does!) + // // // void around(): execution(* C.m8(..)) && args(ArrayList<String>){}//: + // // Should not match (it does not match!) + // // + // // // void around(): execution(* C.m9(..)) && args(List<Integer>){} //: + // // Should not match (but it does) ERROR + // // // void around(): execution(* C.m9(..)) && args(ArrayList<Integer>){}//: + // // Should not match (it does not match!) + // // // void around(): execution(* C.m9(..)) && args(Number){}//: Should match + // // (it does!) + // // // void around(): execution(* C.m9(..)) && args(Integer){}//: Should + // // runtime check (it does) + // // // void around(): execution(* C.m9(..)) && args(List<? extends + // // Number>){}//: Should not match (but it does) ERROR + // // // void around(): execution(* C.m9(..)) && args(ArrayList<? extends + // // Number>){}//: Should not match (it does not match!) + // // // void around(): execution(* C.m9(..)) && args(List){}//: Should not + // // match (but it does) ERROR + // // // void around(): execution(* C.m9(..)) && args(ArrayList){}//: Should + // // not match (it does not match!) + // // // void around(): execution(* C.m9(..)) && args(List<?>){}//: Should not + // // match (but it does) ERROR + // // // void around(): execution(* C.m9(..)) && args(ArrayList<?>){}//: Should + // // not match (it does not match!) + // // // void around(): execution(* C.m9(..)) && args(String){}//: Should not + // // match (it does not match!) + // + // } + private ReferenceType resolve(String sig) { return (ReferenceType) world.resolve(UnresolvedType.forSignature(sig)); } |