--- /dev/null
+interface I<T>{ }
+
+public class Basic2b implements I {
+
+ public static void main(String[]argv) {
+ }
+}
+
+aspect X{
+ declare parents: Basic2b implements I<Integer>; // error
+}
--- /dev/null
+interface I<T>{ }
+
+public class Basic2c implements I<Double> {
+
+ public static void main(String[]argv) {
+ }
+}
+
+aspect X{
+ declare parents: Basic2c implements I; // error
+}
--- /dev/null
+// OK - since new parent matches
+interface I<T>{ }
+
+public class Basic2d implements I<Double> {
+
+ public static void main(String[]argv) {
+ }
+}
+
+aspect X{
+ declare parents: Basic2d implements I<Double>;
+}