diff options
author | apbianco <apbianco@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-07-13 19:45:05 +0000 |
---|---|---|
committer | apbianco <apbianco@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-07-13 19:45:05 +0000 |
commit | cb3d02c0ed928b1c1a98a7df49274835eb4e6133 (patch) | |
tree | d0f63373ed3736d0a874579e065976a6584ec9f8 /libjava/testsuite/libjava.lang | |
parent | 754a6f79884b27f2ff3c6b919beda0190665a9ce (diff) | |
download | ppe42-gcc-cb3d02c0ed928b1c1a98a7df49274835eb4e6133.tar.gz ppe42-gcc-cb3d02c0ed928b1c1a98a7df49274835eb4e6133.zip |
2001-07-12 Alexandre Petit-Bianco <apbianco@redhat.com>
* libjava.compile/anon_ctor_itf_arg.java: Moved to `libjava.lang.'
* libjava.compile/anon_ctor_itf_arg.out: Likewise
* libjava.lang/invoke_from_inner.java: New file.
* libjava.lang/invoke_from_inner.out: Likewise.
(http://gcc.gnu.org/ml/java-patches/2001-q3/msg00061.html )
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@43994 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/testsuite/libjava.lang')
4 files changed, 78 insertions, 0 deletions
diff --git a/libjava/testsuite/libjava.lang/anon_ctor_itf_arg.java b/libjava/testsuite/libjava.lang/anon_ctor_itf_arg.java new file mode 100644 index 00000000000..1fd16f12b83 --- /dev/null +++ b/libjava/testsuite/libjava.lang/anon_ctor_itf_arg.java @@ -0,0 +1,38 @@ +/* From java/3285, By p.thio@valescom.com */ + +interface I +{ + void print (); +}; + +class C1 +implements I +{ + public void print () { System.out.println ("C1: Message"); } +} + +abstract +class C2 +{ + C2(I i) + { + i.print (); + } + abstract void h(); +} + +public +class anon_ctor_itf_arg +{ + public static + void main(String argv[]) + { + C1 c1 = new C1(); + new C2(c1) + { + void h() + { + } + }; + } +} diff --git a/libjava/testsuite/libjava.lang/anon_ctor_itf_arg.out b/libjava/testsuite/libjava.lang/anon_ctor_itf_arg.out new file mode 100644 index 00000000000..abddf8e8f3b --- /dev/null +++ b/libjava/testsuite/libjava.lang/anon_ctor_itf_arg.out @@ -0,0 +1 @@ +C1: Message diff --git a/libjava/testsuite/libjava.lang/invoke_from_inner.java b/libjava/testsuite/libjava.lang/invoke_from_inner.java new file mode 100644 index 00000000000..8659ac6d559 --- /dev/null +++ b/libjava/testsuite/libjava.lang/invoke_from_inner.java @@ -0,0 +1,37 @@ +// This test case once showed that `f[0].execute(x)' woudln't be +// expanded properly, attempting to retrieve this$0 to be used in +// place of `f[0]'. + +abstract class A { + abstract public void execute(C x); +} + +class C {} + +class Z extends A { + public void execute (C x) { + System.out.println ("Z.execute"); + } +} + +public class invoke_from_inner extends A { + + Z f[] = new Z[1]; + class D extends C { + D (C x) { + f[0].execute (x); + execute (x); + } + } + public void execute (C x) { + System.out.println ("invoke_from_inner.execute"); + } + + public static void main (String a[]) { + new invoke_from_inner().foo(); + } + void foo () { + f[0] = new Z(); + new D(new C()); + } +} diff --git a/libjava/testsuite/libjava.lang/invoke_from_inner.out b/libjava/testsuite/libjava.lang/invoke_from_inner.out new file mode 100644 index 00000000000..1911e2f0dad --- /dev/null +++ b/libjava/testsuite/libjava.lang/invoke_from_inner.out @@ -0,0 +1,2 @@ +Z.execute +invoke_from_inner.execute |