diff options
Diffstat (limited to 'tests/java5')
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 |