diff options
author | aclement <aclement> | 2005-08-14 17:13:23 +0000 |
---|---|---|
committer | aclement <aclement> | 2005-08-14 17:13:23 +0000 |
commit | 97eb517e2c79764c5a5eeef4b03b7ef21f75900d (patch) | |
tree | ec7fb944f534691b221eb90dc1ce256d1287fadf /tests/java5/generics | |
parent | 5771d66f8e74b61550ef6a15bb00032fefbfbac2 (diff) | |
download | aspectj-97eb517e2c79764c5a5eeef4b03b7ef21f75900d.tar.gz aspectj-97eb517e2c79764c5a5eeef4b03b7ef21f75900d.zip |
genericitds: more method/ctor ITDs that use their target types generic type variables.
Diffstat (limited to 'tests/java5/generics')
-rw-r--r-- | tests/java5/generics/itds/sharing/CtorA.aj | 17 | ||||
-rw-r--r-- | tests/java5/generics/itds/sharing/CtorB.aj | 16 | ||||
-rw-r--r-- | tests/java5/generics/itds/sharing/MethodJ.aj | 2 | ||||
-rw-r--r-- | tests/java5/generics/itds/sharing/MethodQ.aj | 14 |
4 files changed, 44 insertions, 5 deletions
diff --git a/tests/java5/generics/itds/sharing/CtorA.aj b/tests/java5/generics/itds/sharing/CtorA.aj new file mode 100644 index 000000000..3dc05b26e --- /dev/null +++ b/tests/java5/generics/itds/sharing/CtorA.aj @@ -0,0 +1,17 @@ +import java.util.*; + +public class CtorA { + public static void main(String []argv) { + List<Integer> intList = new ArrayList<Integer>(); + Base<Integer> base = new Base<Integer>(intList); + } +} + +class Base<N extends Number> { + //public Base(List<N> sn) {} + <Y extends Number> Base(Set<N> sn, List<Y> ys) {} +} + +aspect X { + public Base<Z>.new(List<Z> lz) {}; // OK, Z becomes N in parameter +} diff --git a/tests/java5/generics/itds/sharing/CtorB.aj b/tests/java5/generics/itds/sharing/CtorB.aj new file mode 100644 index 000000000..1712bc82b --- /dev/null +++ b/tests/java5/generics/itds/sharing/CtorB.aj @@ -0,0 +1,16 @@ +import java.util.*; + +public class CtorB { + public static void main(String []argv) { + Base<Integer,String> base = new Base<Integer,String>(); + + } +} + +class Base<N extends Number,M> { + +} + +aspect X { + public Base<Z>.new(List<Z> lz) {} // CE only supplied 1 type parameter +} diff --git a/tests/java5/generics/itds/sharing/MethodJ.aj b/tests/java5/generics/itds/sharing/MethodJ.aj index 277646642..5fbaa6626 100644 --- a/tests/java5/generics/itds/sharing/MethodJ.aj +++ b/tests/java5/generics/itds/sharing/MethodJ.aj @@ -3,7 +3,7 @@ import java.util.*; public class MethodJ { public static void main(String []argv) { One o = new One(); - List l = o.m(); + List l = o.m(); } } diff --git a/tests/java5/generics/itds/sharing/MethodQ.aj b/tests/java5/generics/itds/sharing/MethodQ.aj index 6c0bf7ad5..bfe415a28 100644 --- a/tests/java5/generics/itds/sharing/MethodQ.aj +++ b/tests/java5/generics/itds/sharing/MethodQ.aj @@ -2,13 +2,19 @@ import java.util.*; public class MethodQ { public static void main(String []argv) { - SimpleClass<Float> sc = new SimpleClass<Float>(); - sc.m<Integer>(new ArrayList<Integer>(),new ArrayList<Float>()); + SimpleClass<Float> sc = new SimpleClass<Float>(); + List<Integer> li = new ArrayList<Integer>(); + List<Float> lf = new ArrayList<Float>(); + sc.m(li,lf,li); } } -class SimpleClass<N extends Number> { } +class SimpleClass<N extends Number> { + // This is what we are trying to mimic with our ITD + //public <L extends Number> void m(List<L> ll1, List<N> lz,List<L> ll2) {} +} aspect X { - public <L extends Number> void SimpleClass<Z>.m(List<L> ll, List<Z> lz) {} // scary, multiple tvars, one from member, one from target + // scary, multiple tvars, one from member, one from target + public <L extends Number> void SimpleClass<Z>.m(List<L> ll1, List<Z> lz,List<L> ll2) {} } |