From: aclement Date: Thu, 2 Jun 2005 11:09:21 +0000 (+0000) Subject: GenericsWork: ITD testcode X-Git-Tag: PRE_ANDY~254 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=8459fa6a55bb37e629b1c4e7b610f016f499f51a;p=aspectj.git GenericsWork: ITD testcode --- diff --git a/tests/java5/generics/bugs/PR95992.java b/tests/java5/generics/bugs/PR95992.java new file mode 100644 index 000000000..824967fe9 --- /dev/null +++ b/tests/java5/generics/bugs/PR95992.java @@ -0,0 +1,8 @@ +interface Base { + static interface Inner { + } +} +class Test implements Base { + static class InnerTest implements Inner { + } +} diff --git a/tests/java5/generics/decp/Basic.aj b/tests/java5/generics/decp/Basic.aj new file mode 100644 index 000000000..dee3872e6 --- /dev/null +++ b/tests/java5/generics/decp/Basic.aj @@ -0,0 +1,13 @@ +interface I{ } + +public class Basic{ + + public static void main(String[]argv) { + Basic b = new Basic(); + if (b instanceof I) throw new RuntimeException("Should implement I??"); + } +} + +aspect X{ + declare parents: Basic implements I; +} diff --git a/tests/java5/generics/decp/Basic2.aj b/tests/java5/generics/decp/Basic2.aj new file mode 100644 index 000000000..d1127d1ed --- /dev/null +++ b/tests/java5/generics/decp/Basic2.aj @@ -0,0 +1,12 @@ +// error, can't implement two variants of a generic type +interface I{ } + +public class Basic implements I { + + public static void main(String[]argv) { + } +} + +aspect X{ + declare parents: Basic implements I; // error +} diff --git a/tests/java5/generics/itds/A.java b/tests/java5/generics/itds/A.java new file mode 100644 index 000000000..f75d7f90a --- /dev/null +++ b/tests/java5/generics/itds/A.java @@ -0,0 +1,21 @@ +public class A { + public static void main(String[] argv) { + Integer two = 2; + Integer four= 4; + System.err.println("min(2,4)=>"+ new Utils().min(two,four)); + System.err.println("max(2,4)=>"+new Utils().max(two,four)); + } +} + + +aspect X { + T Utils.max(T first,T second) { + if (first>second) return first; else return second; + } +} + +class Utils { + T min(T first,T second) { + if (first.intValue()"+ Utils.min(two,four)); + System.err.println("max(2,4)=>"+Utils.max(two,four)); + } +} + + +aspect X { + static T Utils.max(T first,T second) { + if (first>second) return first; else return second; + } +} + +class Utils { + static T min(T first,T second) { + if (first.intValue() { + private T Foo.data; + + public T Foo.getData(T defaultValue) { + return (this.data!=null?data:defaultValue); + } +} diff --git a/tests/java5/generics/itds/D.java b/tests/java5/generics/itds/D.java new file mode 100644 index 000000000..2ab496cc0 --- /dev/null +++ b/tests/java5/generics/itds/D.java @@ -0,0 +1,11 @@ +public abstract aspect D { + + private T Goo.data; + + public T Goo.getData(T defaultValue) { + return (this.data != null ? data : defaultValue); + } + +} + +class Goo

{} diff --git a/tests/java5/generics/itds/Parse1.java b/tests/java5/generics/itds/Parse1.java new file mode 100644 index 000000000..7168e15a9 --- /dev/null +++ b/tests/java5/generics/itds/Parse1.java @@ -0,0 +1,6 @@ +// Simple non-static ITDM +public class Parse1 { } + +aspect X { + T Parse1.m(T) {} +} diff --git a/tests/java5/generics/itds/Parse2.java b/tests/java5/generics/itds/Parse2.java new file mode 100644 index 000000000..2764904cb --- /dev/null +++ b/tests/java5/generics/itds/Parse2.java @@ -0,0 +1,6 @@ +// Simple static ITDM +public class Parse2 { } + +aspect X { + static T Parse2.m(T) {} +} diff --git a/tests/java5/generics/itds/Parse3.java b/tests/java5/generics/itds/Parse3.java new file mode 100644 index 000000000..2b9aab491 --- /dev/null +++ b/tests/java5/generics/itds/Parse3.java @@ -0,0 +1,6 @@ +// Simple ITDC +public class Parse1 { } + +aspect X { + T Parse1.new(T) {} +} diff --git a/tests/java5/generics/itds/Parse4.java b/tests/java5/generics/itds/Parse4.java new file mode 100644 index 000000000..685356e8a --- /dev/null +++ b/tests/java5/generics/itds/Parse4.java @@ -0,0 +1,8 @@ +import java.util.*; + +// Complex ITDM +public class Parse1 { } + +aspect X { + Parse1.sort(List elements,Comparator comparator) {} +} diff --git a/tests/java5/generics/itds/Parse5.java b/tests/java5/generics/itds/Parse5.java new file mode 100644 index 000000000..c322f006d --- /dev/null +++ b/tests/java5/generics/itds/Parse5.java @@ -0,0 +1,16 @@ +// ITDs on generic types +public class Parse5 {} + +aspect X { + String Parse5.m1() {} + + String Parse5.m2() {} + + String Parse5.m3() {} // error + + String Parse5.m4() {} // error + + String Parse5.m5() {} // error + + String Parse5.m6() {} // error +}