From 0da0f4fbc6733814b049366938403101a9e578a7 Mon Sep 17 00:00:00 2001 From: aclement Date: Thu, 19 Feb 2009 21:04:45 +0000 Subject: 148508, 265418: tests and fixes: array and varargs subtype patterns --- tests/bugs162/PR148508.java | 23 ----------------------- tests/bugs164/PR148508.java | 32 ++++++++++++++++++++++++++++++++ tests/bugs164/pr265418/A.java | 29 +++++++++++++++++++++++++++++ 3 files changed, 61 insertions(+), 23 deletions(-) delete mode 100644 tests/bugs162/PR148508.java create mode 100644 tests/bugs164/PR148508.java create mode 100644 tests/bugs164/pr265418/A.java diff --git a/tests/bugs162/PR148508.java b/tests/bugs162/PR148508.java deleted file mode 100644 index 2269e6700..000000000 --- a/tests/bugs162/PR148508.java +++ /dev/null @@ -1,23 +0,0 @@ - -aspect A { - pointcut broken1() : execution(* *(Object[]+)); -// pointcut broken2(): execution(* *(*)) && args(Object[]+); - - before(): broken1() { System.out.println("a"); } -// before(): broken2() { System.out.println("b"); } -} - -public class PR148508 { - - public static void main(String []argv) { - PR148508 instance = new PR148508(); -// instance.m1(new Object[]{}); - instance.m2(new Integer[]{}); -// instance.m3(new String[]{}); - } - -// public void m1(Object[] os) { } - public void m2(Integer[] is) { } -// public void m3(String[] ss) { } - -} diff --git a/tests/bugs164/PR148508.java b/tests/bugs164/PR148508.java new file mode 100644 index 000000000..081508c11 --- /dev/null +++ b/tests/bugs164/PR148508.java @@ -0,0 +1,32 @@ + +aspect A { + pointcut broken1() : execution(* *(Object[]+)); +// pointcut broken2(): execution(* *(*)) && args(Object[]+); + + before(): broken1() { System.out.println("a"); } +// before(): broken2() { System.out.println("b"); } +} + +public class PR148508 { + + public static void main(String []argv) { + PR148508 instance = new PR148508(); + instance.run(); + } + + public void run() { + Object[] arr = new String[5]; + boolean b = arr instanceof String[]; + + + + // instance.m1(new Object[]{}); +// instance.m2(new Integer[]{}); +// instance.m3(new String[]{}); + } + +// public void m1(Object[] os) { } +// public void m2(Integer[] is) { } +// public void m3(String[] ss) { } + +} diff --git a/tests/bugs164/pr265418/A.java b/tests/bugs164/pr265418/A.java new file mode 100644 index 000000000..b68ca4da7 --- /dev/null +++ b/tests/bugs164/pr265418/A.java @@ -0,0 +1,29 @@ +public aspect A { + + public static void a(Object... os) {} + public static void b(String... ss) {} + public static void c(Integer... is) {} + + public static void d(Object[] os) {} + public static void e(String[] ss) {} + public static void f(Integer[] is) {} + + + before(Object[] args): call(* *(Object+...)) && args(args) { + System.out.println("varargs "+thisJoinPoint); + } + + before(Object[] args): call(* *(Object+[])) && args(args) { + System.out.println("arrays "+thisJoinPoint); + } + + public static void main(String []argv) { + a(); + b(); + c(); + d(null); + e(null); + f(null); + } + +} -- cgit v1.2.3