diff options
author | aclement <aclement> | 2005-12-12 11:52:18 +0000 |
---|---|---|
committer | aclement <aclement> | 2005-12-12 11:52:18 +0000 |
commit | c31c8198b4a33f5319bffac5fa5121caec341aff (patch) | |
tree | 6fe29216f2d202572a94cbd75957e2766feebad2 /tests/multiIncremental/PR119570_2 | |
parent | 1435cd1f6af805b0caa3dc786c7536f974023e80 (diff) | |
download | aspectj-c31c8198b4a33f5319bffac5fa5121caec341aff.tar.gz aspectj-c31c8198b4a33f5319bffac5fa5121caec341aff.zip |
more tests for 119570
Diffstat (limited to 'tests/multiIncremental/PR119570_2')
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 |