aboutsummaryrefslogtreecommitdiffstats
path: root/tests/multiIncremental/PR119570_2
diff options
context:
space:
mode:
authoraclement <aclement>2005-12-12 11:52:18 +0000
committeraclement <aclement>2005-12-12 11:52:18 +0000
commitc31c8198b4a33f5319bffac5fa5121caec341aff (patch)
tree6fe29216f2d202572a94cbd75957e2766feebad2 /tests/multiIncremental/PR119570_2
parent1435cd1f6af805b0caa3dc786c7536f974023e80 (diff)
downloadaspectj-c31c8198b4a33f5319bffac5fa5121caec341aff.tar.gz
aspectj-c31c8198b4a33f5319bffac5fa5121caec341aff.zip
more tests for 119570
Diffstat (limited to 'tests/multiIncremental/PR119570_2')
-rw-r--r--tests/multiIncremental/PR119570_2/base/bugs/ParameterizedDP.java27
-rw-r--r--tests/multiIncremental/PR119570_2/base/bugsOtherPackage/INode.java6
-rw-r--r--tests/multiIncremental/PR119570_2/base/bugsOtherPackage/NodeImpl.java21
3 files changed, 54 insertions, 0 deletions
diff --git a/tests/multiIncremental/PR119570_2/base/bugs/ParameterizedDP.java b/tests/multiIncremental/PR119570_2/base/bugs/ParameterizedDP.java
new file mode 100644
index 000000000..498885991
--- /dev/null
+++ b/tests/multiIncremental/PR119570_2/base/bugs/ParameterizedDP.java
@@ -0,0 +1,27 @@
+package bugs;
+
+import bugsOtherPackage.INode;
+import bugsOtherPackage.NodeImpl;
+
+public class ParameterizedDP {
+
+ public static void main(String[] args) {
+ // 1) compile-time error here without
+ // {unneeded} subaspect declare-parent
+ // Tag as INode<Tag, Tag> from PC extends NodeImpl<Tag, Tag>
+ ((TaggedTexts.Tag) null).getParent();
+ }
+
+}
+class TaggedTexts {
+
+ public static class Text { }
+
+ public static class Tag { }
+ static aspect PC extends NodeImpl<Tag, Tag> {
+ // unneeded declare-parents duplicates one in NodeImpl
+ // when here, get spurious error message
+ // when commented out, d-p fails and get compiler error at 1) above
+ // declare parents : Tag implements INode<Tag,Tag>;
+ }
+}
diff --git a/tests/multiIncremental/PR119570_2/base/bugsOtherPackage/INode.java b/tests/multiIncremental/PR119570_2/base/bugsOtherPackage/INode.java
new file mode 100644
index 000000000..2c94ebf60
--- /dev/null
+++ b/tests/multiIncremental/PR119570_2/base/bugsOtherPackage/INode.java
@@ -0,0 +1,6 @@
+package bugsOtherPackage;
+
+public interface INode<Parent, Child> {
+ boolean setParent(INode<Parent, Child> p);
+ INode<Parent, Child> getParent();
+} \ No newline at end of file
diff --git a/tests/multiIncremental/PR119570_2/base/bugsOtherPackage/NodeImpl.java b/tests/multiIncremental/PR119570_2/base/bugsOtherPackage/NodeImpl.java
new file mode 100644
index 000000000..95911d31f
--- /dev/null
+++ b/tests/multiIncremental/PR119570_2/base/bugsOtherPackage/NodeImpl.java
@@ -0,0 +1,21 @@
+package bugsOtherPackage;
+
+import java.util.ArrayList;
+
+public abstract aspect NodeImpl<Parent, Child> {
+
+ declare parents : Child implements INode<Parent, Child>;
+ declare parents : Parent implements INode<Parent, Child>;
+
+ private final ArrayList<INode> INode.fChildren = new ArrayList<INode>();
+
+ // are you not supposed to use type parameters here?
+ private INode<Parent, Child> INode.fParent;
+ public final INode<Parent, Child> INode.getParent() {
+ return fParent;
+ }
+ public final boolean INode.setParent(INode<Parent, Child> newParent) {
+ fParent = newParent;
+ return true;
+ }
+} \ No newline at end of file