diff options
Diffstat (limited to 'tests/bugs153')
-rw-r--r-- | tests/bugs153/pr121805/Complex.java | 41 | ||||
-rw-r--r-- | tests/bugs153/pr145442/MissingLineNumbers.java | 18 |
2 files changed, 59 insertions, 0 deletions
diff --git a/tests/bugs153/pr121805/Complex.java b/tests/bugs153/pr121805/Complex.java new file mode 100644 index 000000000..aa6d025c1 --- /dev/null +++ b/tests/bugs153/pr121805/Complex.java @@ -0,0 +1,41 @@ +class CommonEntity { + + public void add(CommonEntity ce) {} + public void remove(CommonEntity ce) {} + +} + +class ManageEntity { + + ManageEntity(CommonEntity ce) { + } +} + + +abstract aspect Y { + abstract pointcut entityAccessor(CommonEntity entity); + before(CommonEntity entity): entityAccessor(entity) {} +} + + +aspect X extends Y { + + public pointcut entityAccessor1(CommonEntity entity) + : (execution(* CommonEntity+.add*(CommonEntity+)) + || (execution(* CommonEntity+.remove*(CommonEntity+)))) + && within(CommonEntity+) + && args(entity) && if(entity != null); + + public pointcut entityAccessor2(CommonEntity entity) + : execution(ManageEntity.new(CommonEntity+, ..)) + && within(ManageEntity) + && args(entity, ..) + && if(entity != null); + + public pointcut entityAccessor(CommonEntity entity) + : entityAccessor1(entity) || entityAccessor2(entity); + + +} + + diff --git a/tests/bugs153/pr145442/MissingLineNumbers.java b/tests/bugs153/pr145442/MissingLineNumbers.java new file mode 100644 index 000000000..08cca8fa1 --- /dev/null +++ b/tests/bugs153/pr145442/MissingLineNumbers.java @@ -0,0 +1,18 @@ +public class MissingLineNumbers { + public static void main(String []argv) { + new MissingLineNumbers().foo(); + } + + public void foo() { + System.err.println("hello"); + System.err.println("world"); + } +} + +aspect X { + void around(): call(* foo(..)) { + new RuntimeException().printStackTrace(); + } +} + + |