summaryrefslogtreecommitdiffstats
path: root/tests/bugs150
diff options
context:
space:
mode:
authoracolyer <acolyer>2005-09-08 13:40:33 +0000
committeracolyer <acolyer>2005-09-08 13:40:33 +0000
commit2505485766b460041f2648e56f34132982f6428a (patch)
tree0f3eec6e8fd58dbb652ceffb155873e3b20c54ee /tests/bugs150
parent9fa1e7af8353a15a5f28f1bb1a4c4684a3c38eae (diff)
downloadaspectj-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.aj12
-rw-r--r--tests/bugs150/pr108902/Observer.java5
-rw-r--r--tests/bugs150/pr108902/ObserverProtocol.aj48
-rw-r--r--tests/bugs150/pr108902/Subject.java7
-rw-r--r--tests/bugs150/pr108903.aj17
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());
+}