[Nice-commit] Nice/testsuite/compiler/methods generalization.testsuite,1.1,1.2
Brought to you by:
bonniot
From: Daniel B. <bo...@us...> - 2004-10-12 23:35:58
|
Update of /cvsroot/nice/Nice/testsuite/compiler/methods In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6059/testsuite/compiler/methods Modified Files: generalization.testsuite Log Message: Allow existing Java methods to be generalized. Index: generalization.testsuite =================================================================== RCS file: /cvsroot/nice/Nice/testsuite/compiler/methods/generalization.testsuite,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** generalization.testsuite 12 Oct 2004 18:39:05 -0000 1.1 --- generalization.testsuite 12 Oct 2004 23:35:48 -0000 1.2 *************** *** 34,40 **** class a.Collection implements Fooable; ! /// PASS bug /// Toplevel abstract interface Addable<T> { void add(T item); } interface java.util.Collection implements Addable; --- 34,71 ---- class a.Collection implements Fooable; ! /// PASS ! let c = new ArrayList(); ! c.addTwice("A"); ! assert c.size() == 2; ! ! // Check that overrides work ! let l = new SilentlyEmptyList(); ! l.addTwice("A"); ! assert l.size() == 0; /// Toplevel abstract interface Addable<T> { void add(T item); } interface java.util.Collection implements Addable; + + <Addable A, T> void addTwice(A<T> a, T e) { a.add(e); a.add(e); } + + class SilentlyEmptyList<T> extends LinkedList + { + add(e) = false; + } + + /// FAIL + let c = new ArrayList(); + c.addTwice("A"); + assert c.size() == 2; + + /// Toplevel + abstract interface Addable<T> + { + // Wrong return type + /*/// FAIL HERE */ String add(T item); + } + + interface java.util.Collection implements Addable; + + <Addable A, T> void addTwice(A<T> a, T e) { a.add(e); a.add(e); } |