From aee5f8a89bc4cd4c91a801249c25c9527d056272 Mon Sep 17 00:00:00 2001 From: aclement Date: Fri, 12 Aug 2005 16:47:10 +0000 Subject: [PATCH] genericitds: method ITDs that use their target types generic type variables. --- tests/java5/generics/itds/sharing/MethodA.aj | 15 +++++++++++++++ tests/java5/generics/itds/sharing/MethodA2.aj | 16 ++++++++++++++++ tests/java5/generics/itds/sharing/MethodA3.aj | 17 +++++++++++++++++ tests/java5/generics/itds/sharing/MethodA4.aj | 17 +++++++++++++++++ tests/java5/generics/itds/sharing/MethodB.aj | 17 +++++++++++++++++ tests/java5/generics/itds/sharing/MethodC.aj | 16 ++++++++++++++++ tests/java5/generics/itds/sharing/MethodD.aj | 15 +++++++++++++++ tests/java5/generics/itds/sharing/MethodE.aj | 16 ++++++++++++++++ tests/java5/generics/itds/sharing/MethodF.aj | 16 ++++++++++++++++ tests/java5/generics/itds/sharing/MethodG.aj | 19 +++++++++++++++++++ tests/java5/generics/itds/sharing/MethodH.aj | 19 +++++++++++++++++++ tests/java5/generics/itds/sharing/MethodI.aj | 14 ++++++++++++++ tests/java5/generics/itds/sharing/MethodI2.aj | 15 +++++++++++++++ 13 files changed, 212 insertions(+) create mode 100644 tests/java5/generics/itds/sharing/MethodA.aj create mode 100644 tests/java5/generics/itds/sharing/MethodA2.aj create mode 100644 tests/java5/generics/itds/sharing/MethodA3.aj create mode 100644 tests/java5/generics/itds/sharing/MethodA4.aj create mode 100644 tests/java5/generics/itds/sharing/MethodB.aj create mode 100644 tests/java5/generics/itds/sharing/MethodC.aj create mode 100644 tests/java5/generics/itds/sharing/MethodD.aj create mode 100644 tests/java5/generics/itds/sharing/MethodE.aj create mode 100644 tests/java5/generics/itds/sharing/MethodF.aj create mode 100644 tests/java5/generics/itds/sharing/MethodG.aj create mode 100644 tests/java5/generics/itds/sharing/MethodH.aj create mode 100644 tests/java5/generics/itds/sharing/MethodI.aj create mode 100644 tests/java5/generics/itds/sharing/MethodI2.aj diff --git a/tests/java5/generics/itds/sharing/MethodA.aj b/tests/java5/generics/itds/sharing/MethodA.aj new file mode 100644 index 000000000..66a555cbf --- /dev/null +++ b/tests/java5/generics/itds/sharing/MethodA.aj @@ -0,0 +1,15 @@ +import java.util.*; + +public class MethodA { + public static void main(String []argv) { + Base base = new Base(); + List intList = new ArrayList(); + base.m(intList); + } +} + +class Base { } + +aspect X { + public void Base.m(List lz) {}; // OK, Z becomes N in parameter +} diff --git a/tests/java5/generics/itds/sharing/MethodA2.aj b/tests/java5/generics/itds/sharing/MethodA2.aj new file mode 100644 index 000000000..2b08dc504 --- /dev/null +++ b/tests/java5/generics/itds/sharing/MethodA2.aj @@ -0,0 +1,16 @@ +import java.util.*; + +public class MethodA2 { + public static void main(String []argv) { + Base base = new Base(); + List intList = base.m(); + } +} + +class Base { } + +aspect X { + public List Base.m() { // OK, Z becomes N in return type + return null; + }; +} diff --git a/tests/java5/generics/itds/sharing/MethodA3.aj b/tests/java5/generics/itds/sharing/MethodA3.aj new file mode 100644 index 000000000..f7448a5e2 --- /dev/null +++ b/tests/java5/generics/itds/sharing/MethodA3.aj @@ -0,0 +1,17 @@ +import java.util.*; + +public class MethodA3 { + public static void main(String []argv) { + Base base = new Base(); + List intList = new ArrayList(); + intList = base.m(intList); + } +} + +class Base { } + +aspect X { + public List Base.m(List lz) { // OK, Z becomes N in return type and parameter + return lz; + }; +} diff --git a/tests/java5/generics/itds/sharing/MethodA4.aj b/tests/java5/generics/itds/sharing/MethodA4.aj new file mode 100644 index 000000000..64c2aced0 --- /dev/null +++ b/tests/java5/generics/itds/sharing/MethodA4.aj @@ -0,0 +1,17 @@ +import java.util.*; + +public class MethodA4 { + public static void main(String []argv) { + Base base = new Base(); + List intList = base.m(); + } +} + +class Base { } + +aspect X { + public List Base.m() { // OK, Z becomes N in return type + List lz = new ArrayList(); + return lz; + }; +} diff --git a/tests/java5/generics/itds/sharing/MethodB.aj b/tests/java5/generics/itds/sharing/MethodB.aj new file mode 100644 index 000000000..0d6bbc380 --- /dev/null +++ b/tests/java5/generics/itds/sharing/MethodB.aj @@ -0,0 +1,17 @@ +import java.util.*; + +public class MethodB { + public static void main(String []argv) { + Base base = new Base(); + List intList = new ArrayList(); + + } +} + +class Base { + +} + +aspect X { + public List Base.m() { return null;}; // CE only supplied 1 type parameter +} diff --git a/tests/java5/generics/itds/sharing/MethodC.aj b/tests/java5/generics/itds/sharing/MethodC.aj new file mode 100644 index 000000000..0a2d7a23e --- /dev/null +++ b/tests/java5/generics/itds/sharing/MethodC.aj @@ -0,0 +1,16 @@ +import java.util.*; + +public class MethodC { + public static void main(String []argv) { + Base base = new Base(); + List> intList2 = new ArrayList>(); + base.m(intList2); + } +} + +class Base { +} + +aspect X { + public void Base.m(List> llz) {}; // ok - nested but OK +} diff --git a/tests/java5/generics/itds/sharing/MethodD.aj b/tests/java5/generics/itds/sharing/MethodD.aj new file mode 100644 index 000000000..c67a907ce --- /dev/null +++ b/tests/java5/generics/itds/sharing/MethodD.aj @@ -0,0 +1,15 @@ +import java.util.*; + +public class MethodD { + public static void main(String []argv) { + Base base = new Base(); + base.m(new HashMap()); + } +} + +class Base { +} + +aspect X { + public void Base.m(Map mabs) {}; // ok multiple +} diff --git a/tests/java5/generics/itds/sharing/MethodE.aj b/tests/java5/generics/itds/sharing/MethodE.aj new file mode 100644 index 000000000..546747aaa --- /dev/null +++ b/tests/java5/generics/itds/sharing/MethodE.aj @@ -0,0 +1,16 @@ +import java.util.*; + +public class MethodE { + public static void main(String []argv) { + Base base = new Base(); + List stringList = new ArrayList(); + base.m(); + } +} + +class Base { +} + +aspect X { + public List Base.m() { return null;}; // ok - specified type variable but didnt use it +} diff --git a/tests/java5/generics/itds/sharing/MethodF.aj b/tests/java5/generics/itds/sharing/MethodF.aj new file mode 100644 index 000000000..0416c8e54 --- /dev/null +++ b/tests/java5/generics/itds/sharing/MethodF.aj @@ -0,0 +1,16 @@ +import java.util.*; + +public class MethodF { + public static void main(String []argv) { + Base base = new Base(); + + Map mii = base.m(new HashMap()); + } +} + +class Base { +} + +aspect X { + public Map Base.m(Map lc) { return null;} // ok multiple in funny orders +} diff --git a/tests/java5/generics/itds/sharing/MethodG.aj b/tests/java5/generics/itds/sharing/MethodG.aj new file mode 100644 index 000000000..d0be22c47 --- /dev/null +++ b/tests/java5/generics/itds/sharing/MethodG.aj @@ -0,0 +1,19 @@ +import java.util.*; + +public aspect MethodG { + + // visibility options... + public List Base.i(List lz) {return null;} // ok + private List Base.j(List lz) {return null;} // ok + List Base.k(List lz) {return null;} // ok + + public static void main(String []argv) { + Base base = new Base(); + List intList = new ArrayList(); + List li1 = base.i(intList); + List li2 = base.j(intList); + List li3 = base.k(intList); + } +} + +class Base { } diff --git a/tests/java5/generics/itds/sharing/MethodH.aj b/tests/java5/generics/itds/sharing/MethodH.aj new file mode 100644 index 000000000..8df78ae30 --- /dev/null +++ b/tests/java5/generics/itds/sharing/MethodH.aj @@ -0,0 +1,19 @@ +import java.util.*; + +public class MethodH { + public static void main(String []argv) { + Base baseInt = new Base(); + Base baseString = new Base(); + + List intList = new ArrayList(); + List strList = new ArrayList(); + List li = baseInt.m(intList); + List ls = baseString.m(strList); + } +} + +class Base { } + +aspect X { + public List Base.m(List lz) { return null;} // OK, Z becomes N in first case, S in the second ;) +} diff --git a/tests/java5/generics/itds/sharing/MethodI.aj b/tests/java5/generics/itds/sharing/MethodI.aj new file mode 100644 index 000000000..f318f241e --- /dev/null +++ b/tests/java5/generics/itds/sharing/MethodI.aj @@ -0,0 +1,14 @@ +import java.util.*; + +public class MethodI { + public static void main(String []argv) { + Base base = new Base(); + List ls = base.m(); // error, violates bounds + } +} + +class Base { } + +aspect X { + public List Base.m() { return null;} +} diff --git a/tests/java5/generics/itds/sharing/MethodI2.aj b/tests/java5/generics/itds/sharing/MethodI2.aj new file mode 100644 index 000000000..629f89145 --- /dev/null +++ b/tests/java5/generics/itds/sharing/MethodI2.aj @@ -0,0 +1,15 @@ +import java.util.*; + +public class MethodI2 { + public static void main(String []argv) { + Base base = new Base(); + List ls = new ArrayList(); + base.m(ls); // error, violates bounds + } +} + +class Base { } + +aspect X { + public void Base.m(List lz) { } +} -- 2.39.5