summaryrefslogtreecommitdiffstats
path: root/tests/java5/generics
diff options
context:
space:
mode:
authoraclement <aclement>2005-08-14 17:13:23 +0000
committeraclement <aclement>2005-08-14 17:13:23 +0000
commit97eb517e2c79764c5a5eeef4b03b7ef21f75900d (patch)
treeec7fb944f534691b221eb90dc1ce256d1287fadf /tests/java5/generics
parent5771d66f8e74b61550ef6a15bb00032fefbfbac2 (diff)
downloadaspectj-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.aj17
-rw-r--r--tests/java5/generics/itds/sharing/CtorB.aj16
-rw-r--r--tests/java5/generics/itds/sharing/MethodJ.aj2
-rw-r--r--tests/java5/generics/itds/sharing/MethodQ.aj14
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) {}
}