+++ /dev/null
-
-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) { }
-
-}
--- /dev/null
+
+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) { }
+
+}
--- /dev/null
+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);
+ }
+
+}