summaryrefslogtreecommitdiffstats
path: root/tests/java5
diff options
context:
space:
mode:
authoracolyer <acolyer>2005-07-11 13:48:57 +0000
committeracolyer <acolyer>2005-07-11 13:48:57 +0000
commit3be70641af15361548ab3a576d97fceaea1a9557 (patch)
tree4a0d2787b8547c6c7ae03ee8e2b59b8b3611bdb8 /tests/java5
parentebeba53b5bc8c8134ac1bfe119c3154008862cc0 (diff)
downloadaspectj-3be70641af15361548ab3a576d97fceaea1a9557.tar.gz
aspectj-3be70641af15361548ab3a576d97fceaea1a9557.zip
added one simple test for matching members of a parameterized type.
Took me 3 days to get it to pass!!!
Diffstat (limited to 'tests/java5')
-rw-r--r--tests/java5/generics/pointcuts/ConcreteImplementingClass.java9
-rw-r--r--tests/java5/generics/pointcuts/GenericImplementingClass.java8
-rw-r--r--tests/java5/generics/pointcuts/GenericInterface.java5
-rw-r--r--tests/java5/generics/pointcuts/RawTypeMatching.aj17
4 files changed, 39 insertions, 0 deletions
diff --git a/tests/java5/generics/pointcuts/ConcreteImplementingClass.java b/tests/java5/generics/pointcuts/ConcreteImplementingClass.java
new file mode 100644
index 000000000..b0446cf51
--- /dev/null
+++ b/tests/java5/generics/pointcuts/ConcreteImplementingClass.java
@@ -0,0 +1,9 @@
+public class ConcreteImplementingClass
+implements GenericInterface<Double> {
+
+ // make sure this method starts on line 5...
+ public int asInt(Double d) {
+ return d.intValue();
+ }
+
+} \ No newline at end of file
diff --git a/tests/java5/generics/pointcuts/GenericImplementingClass.java b/tests/java5/generics/pointcuts/GenericImplementingClass.java
new file mode 100644
index 000000000..89b8d7870
--- /dev/null
+++ b/tests/java5/generics/pointcuts/GenericImplementingClass.java
@@ -0,0 +1,8 @@
+public class GenericImplementingClass<N extends Number>
+ implements GenericInterface<N> {
+
+ public int asInt(N aNumber) {
+ return aNumber.intValue();
+ }
+
+ } \ No newline at end of file
diff --git a/tests/java5/generics/pointcuts/GenericInterface.java b/tests/java5/generics/pointcuts/GenericInterface.java
new file mode 100644
index 000000000..10923121f
--- /dev/null
+++ b/tests/java5/generics/pointcuts/GenericInterface.java
@@ -0,0 +1,5 @@
+public interface GenericInterface<N extends Number> {
+
+ int asInt(N aNumber);
+
+}
diff --git a/tests/java5/generics/pointcuts/RawTypeMatching.aj b/tests/java5/generics/pointcuts/RawTypeMatching.aj
new file mode 100644
index 000000000..32e80a2ff
--- /dev/null
+++ b/tests/java5/generics/pointcuts/RawTypeMatching.aj
@@ -0,0 +1,17 @@
+public aspect RawTypeMatching {
+
+ // tests that references to a generic or parameterized type are
+ // always matched by a type pattern refering to the raw type form
+
+ void someCode() {
+ ConcreteImplementingClass cic = new ConcreteImplementingClass();
+ cic.asInt(5.0d);
+ GenericImplementingClass<Long> gic = new GenericImplementingClass<Long>();
+ gic.asInt(55L);
+ }
+
+ declare warning :
+ execution(* GenericInterface.*(..)) :
+ "execution(* GenericInterface.*(..))";
+
+} \ No newline at end of file