diff options
author | acolyer <acolyer> | 2005-09-08 13:40:33 +0000 |
---|---|---|
committer | acolyer <acolyer> | 2005-09-08 13:40:33 +0000 |
commit | 2505485766b460041f2648e56f34132982f6428a (patch) | |
tree | 0f3eec6e8fd58dbb652ceffb155873e3b20c54ee /tests/bugs150 | |
parent | 9fa1e7af8353a15a5f28f1bb1a4c4684a3c38eae (diff) | |
download | aspectj-2505485766b460041f2648e56f34132982f6428a.tar.gz aspectj-2505485766b460041f2648e56f34132982f6428a.zip |
tests and fix for pr108902 and pr108903
Diffstat (limited to 'tests/bugs150')
-rw-r--r-- | tests/bugs150/pr108902/GenericTypeMismatch.aj | 12 | ||||
-rw-r--r-- | tests/bugs150/pr108902/Observer.java | 5 | ||||
-rw-r--r-- | tests/bugs150/pr108902/ObserverProtocol.aj | 48 | ||||
-rw-r--r-- | tests/bugs150/pr108902/Subject.java | 7 | ||||
-rw-r--r-- | tests/bugs150/pr108903.aj | 17 |
5 files changed, 89 insertions, 0 deletions
diff --git a/tests/bugs150/pr108902/GenericTypeMismatch.aj b/tests/bugs150/pr108902/GenericTypeMismatch.aj new file mode 100644 index 000000000..4678baae0 --- /dev/null +++ b/tests/bugs150/pr108902/GenericTypeMismatch.aj @@ -0,0 +1,12 @@ +import java.util.*; + +abstract aspect ObserverProtocol { + + private Collection Subject.observers = new ArrayList(); + + public Collection Subject.getObservers() { + return observers; + } +} + +aspect XYZ extends ObserverProtocol {}
\ No newline at end of file diff --git a/tests/bugs150/pr108902/Observer.java b/tests/bugs150/pr108902/Observer.java new file mode 100644 index 000000000..b055f8484 --- /dev/null +++ b/tests/bugs150/pr108902/Observer.java @@ -0,0 +1,5 @@ +//Observer.java +interface Observer +{ + public void update(); +}
\ No newline at end of file diff --git a/tests/bugs150/pr108902/ObserverProtocol.aj b/tests/bugs150/pr108902/ObserverProtocol.aj new file mode 100644 index 000000000..93750cc87 --- /dev/null +++ b/tests/bugs150/pr108902/ObserverProtocol.aj @@ -0,0 +1,48 @@ +import java.util.*; +//ObserverProtocol +public abstract aspect ObserverProtocol{ + abstract pointcut stateChange(Subject subject); + + after(Subject subject):stateChange(subject){ + Iterator it=subject.getObservers().iterator(); + while(it.hasNext()){ + Observer observer=(Observer)it.next(); + observer.update(); + } + } + + private Collection Subject.observers=new ArrayList(); + + public void Subject.addObserver(Observer observer){ + observers.add(observer); + } + + public void Subject.removeObserver(Observer observer){ + observers.remove(observer); + } + + public Collection Subject.getObservers() + { + return observers; + } + + public void Subject.setObservers(Collection c) { + observers = c; + } + + private Collection myCollection = new ArrayList(); + + public Collection returnsCollectionMethod() { return myCollection; } + + public Collection C1.getCollection() { + return aCollection; + } + + public void C1.setCollection(Collection c) { + aCollection = c; + } +} + +class C1 { + public Collection aCollection; +}
\ No newline at end of file diff --git a/tests/bugs150/pr108902/Subject.java b/tests/bugs150/pr108902/Subject.java new file mode 100644 index 000000000..abdd18743 --- /dev/null +++ b/tests/bugs150/pr108902/Subject.java @@ -0,0 +1,7 @@ +import java.util.*; +//Subject.java +interface Subject { + public void addObserver(Observer observer); + public void removeObserver(Observer observer); + public Collection getObservers(); +}
\ No newline at end of file diff --git a/tests/bugs150/pr108903.aj b/tests/bugs150/pr108903.aj new file mode 100644 index 000000000..099e70c5d --- /dev/null +++ b/tests/bugs150/pr108903.aj @@ -0,0 +1,17 @@ +abstract class Order { + + public void print() { } +} +// +class SalesOrder { +} +// +abstract aspect OrderDecorator +{ + declare parents : SalesOrder extends Order; + public void SalesOrder.print() + { + super.print(); // Line 12 + } + protected pointcut print(Order order) : target(order) && call(public void print()); +} |