From d9d5f4a7cb2e5675b7be629c633d6abd81b1447a Mon Sep 17 00:00:00 2001 From: aclement Date: Thu, 21 Aug 2008 23:08:04 +0000 Subject: [PATCH] 211146: testcode: generics info lost from itds --- tests/bugs162/pr211146/GenericsLost.java | 23 ++++++ tests/bugs162/pr211146/GenericsLost2.java | 13 +++ tests/bugs162/pr211146/GenericsLost2Dep.java | 8 ++ tests/bugs162/pr211146/GenericsLost3.java | 79 +++++++++++++++++++ tests/bugs162/pr211146/GenericsLost4.java | 28 +++++++ tests/bugs162/pr211146/GenericsLost5.java | 19 +++++ .../systemtest/ajc162/Ajc162Tests.java | 5 ++ .../org/aspectj/systemtest/ajc162/ajc162.xml | 25 ++++++ 8 files changed, 200 insertions(+) create mode 100644 tests/bugs162/pr211146/GenericsLost.java create mode 100644 tests/bugs162/pr211146/GenericsLost2.java create mode 100644 tests/bugs162/pr211146/GenericsLost2Dep.java create mode 100644 tests/bugs162/pr211146/GenericsLost3.java create mode 100644 tests/bugs162/pr211146/GenericsLost4.java create mode 100644 tests/bugs162/pr211146/GenericsLost5.java diff --git a/tests/bugs162/pr211146/GenericsLost.java b/tests/bugs162/pr211146/GenericsLost.java new file mode 100644 index 000000000..63631af57 --- /dev/null +++ b/tests/bugs162/pr211146/GenericsLost.java @@ -0,0 +1,23 @@ +import java.util.*; +import java.lang.reflect.*; + +aspect Foo { + + public List Goo.getStrings() { + return null; + } + +} + +class Goo { +} + +public class GenericsLost { + + public static void main(String[]argv) throws Exception { + Method m = Goo.class.getDeclaredMethod("getStrings"); + Type t = m.getGenericReturnType(); + if (!t.toString().equals("java.util.List")) + throw new RuntimeException("Incorrect signature. Signature is "+t); + } +} diff --git a/tests/bugs162/pr211146/GenericsLost2.java b/tests/bugs162/pr211146/GenericsLost2.java new file mode 100644 index 000000000..1fc1b155f --- /dev/null +++ b/tests/bugs162/pr211146/GenericsLost2.java @@ -0,0 +1,13 @@ +import java.util.*; +import java.lang.reflect.*; + +aspect Foo { + + public List GenericsLost2.getStrings() { + return null; + } +} + +class GenericsLost2 { +} + \ No newline at end of file diff --git a/tests/bugs162/pr211146/GenericsLost2Dep.java b/tests/bugs162/pr211146/GenericsLost2Dep.java new file mode 100644 index 000000000..71b194a68 --- /dev/null +++ b/tests/bugs162/pr211146/GenericsLost2Dep.java @@ -0,0 +1,8 @@ +import java.util.*; +import java.lang.reflect.*; + +public class GenericsLost2Dep { + public static void main(String[] args) { + new GenericsLost2().getStrings().add("abc"); + } +} \ No newline at end of file diff --git a/tests/bugs162/pr211146/GenericsLost3.java b/tests/bugs162/pr211146/GenericsLost3.java new file mode 100644 index 000000000..e52ba8cf6 --- /dev/null +++ b/tests/bugs162/pr211146/GenericsLost3.java @@ -0,0 +1,79 @@ +import java.util.*; +import java.lang.reflect.*; + +aspect Foo { + + // return type + public List Goo.getStrings() { + return null; + } + + // parameters + public void Goo.putStrings(List ls, List lls) { + + } + + // type variables + public List Goo.numerics(T t) { + return null; + } + + // type variables 2 + public > List Goo.nightmare(T t) { + return null; + } + + // type variables 3 + public ,Q extends Number> List Goo.holyCow(Q t) { + return null; + } +} + +class Goo { +} + +public class GenericsLost3 { + + public static void main(String[]argv) throws Exception { + Method m = Goo.class.getDeclaredMethod("getStrings"); + Type t = m.getGenericReturnType(); + if (!t.toString().equals("java.util.List")) + throw new RuntimeException("Incorrect signature1. Signature is "+t); + + + m = Goo.class.getDeclaredMethod("putStrings",new Class[]{List.class,List.class}); + Type[] ps = m.getGenericParameterTypes(); + if (!ps[0].toString().equals("java.util.List")) + throw new RuntimeException("Incorrect signature2. Signature is "+t); + if (!ps[1].toString().equals("java.util.List")) + throw new RuntimeException("Incorrect signature3. Signature is "+t); + + + m = Goo.class.getDeclaredMethod("numerics", new Class[]{Number.class}); + t = m.getGenericReturnType(); + if (!t.toString().equals("java.util.List")) + throw new RuntimeException("Incorrect signature4. Signature is "+t); + t = m.getGenericParameterTypes()[0]; + if (!t.toString().equals("T")) + throw new RuntimeException("Incorrect signature5. Signature is "+t); + + m = Goo.class.getDeclaredMethod("nightmare", new Class[]{List.class}); + t = m.getGenericReturnType(); + if (!t.toString().equals("java.util.List")) + throw new RuntimeException("Incorrect signature4. Signature is "+t); + t = m.getGenericParameterTypes()[0]; + if (!t.toString().equals("T")) + throw new RuntimeException("Incorrect signature5. Signature is "+t); + + + m = Goo.class.getDeclaredMethod("holyCow", new Class[]{Number.class}); + t = m.getGenericReturnType(); + if (!t.toString().equals("java.util.List")) + throw new RuntimeException("Incorrect signature4. Signature is "+t); + t = m.getGenericParameterTypes()[0]; + if (!t.toString().equals("Q")) + throw new RuntimeException("Incorrect signature5. Signature is "+t); + + + } +} diff --git a/tests/bugs162/pr211146/GenericsLost4.java b/tests/bugs162/pr211146/GenericsLost4.java new file mode 100644 index 000000000..2cdf76dc6 --- /dev/null +++ b/tests/bugs162/pr211146/GenericsLost4.java @@ -0,0 +1,28 @@ +import java.util.*; +import java.lang.reflect.*; + +// interface ITD +aspect Foo { + public List IFace.getStrings() { + return null; + } +} + +interface IFace {} + +class Goo implements IFace {} + +public class GenericsLost4 { + public static void main(String[]argv) throws Exception { + Method m = Goo.class.getDeclaredMethod("getStrings"); + Type t = m.getGenericReturnType(); + if (!t.toString().equals("java.util.List")) + throw new RuntimeException("Incorrect signature. Signature is "+t); + + m = IFace.class.getDeclaredMethod("getStrings"); + t = m.getGenericReturnType(); + if (!t.toString().equals("java.util.List")) + throw new RuntimeException("Incorrect signature. Signature is "+t); + } +} + \ No newline at end of file diff --git a/tests/bugs162/pr211146/GenericsLost5.java b/tests/bugs162/pr211146/GenericsLost5.java new file mode 100644 index 000000000..329bdd735 --- /dev/null +++ b/tests/bugs162/pr211146/GenericsLost5.java @@ -0,0 +1,19 @@ +import java.util.*; +import java.lang.reflect.*; + +// generic field itd +aspect Foo { + public List Goo.ls; +} + +class Goo {} + +public class GenericsLost5 { + public static void main(String[]argv) throws Exception { + Field f = Goo.class.getDeclaredField("ls"); + Type t = f.getGenericType(); + if (!t.toString().equals("java.util.List")) + throw new RuntimeException("Incorrect signature. Signature is "+t); + } +} + \ No newline at end of file diff --git a/tests/src/org/aspectj/systemtest/ajc162/Ajc162Tests.java b/tests/src/org/aspectj/systemtest/ajc162/Ajc162Tests.java index 7b06234bc..970d65219 100644 --- a/tests/src/org/aspectj/systemtest/ajc162/Ajc162Tests.java +++ b/tests/src/org/aspectj/systemtest/ajc162/Ajc162Tests.java @@ -19,6 +19,11 @@ import org.aspectj.testing.XMLBasedAjcTestCase; public class Ajc162Tests extends org.aspectj.testing.XMLBasedAjcTestCase { // AspectJ1.6.2 + public void testLostGenericsSigOnItd_pr211146() { runTest("lost generic sig on itd"); } + public void testLostGenericsSigOnItd_pr211146_2() { runTest("lost generic sig on itd - 2"); } + public void testLostGenericsSigOnItd_pr211146_3() { runTest("lost generic sig on itd - 3"); } + public void testLostGenericsSigOnItd_pr211146_4() { runTest("lost generic sig on itd - 4"); } + public void testLostGenericsSigOnItd_pr211146_5() { runTest("lost generic sig on itd - 5"); } public void testMissingContext_pr194429() { runTest("missing context"); } public void testWarningsForLimitations_pr210114() { runTest("warnings for limitations"); } public void testPTW_pr244830() { runTest("ptw initFailureCause"); } diff --git a/tests/src/org/aspectj/systemtest/ajc162/ajc162.xml b/tests/src/org/aspectj/systemtest/ajc162/ajc162.xml index 1b3cfed02..8af637700 100644 --- a/tests/src/org/aspectj/systemtest/ajc162/ajc162.xml +++ b/tests/src/org/aspectj/systemtest/ajc162/ajc162.xml @@ -3,6 +3,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + -- 2.39.5