[Nice-commit] Nice/testsuite/compiler/methods overriding.testsuite,1.5,1.6
Brought to you by:
bonniot
From: Daniel B. <bo...@us...> - 2004-03-17 00:46:10
|
Update of /cvsroot/nice/Nice/testsuite/compiler/methods In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26138/testsuite/compiler/methods Modified Files: overriding.testsuite Log Message: Do not allow overriding involving specialization of type parameters, as this is unsafe since dispatch does not consider type parameters. Index: overriding.testsuite =================================================================== RCS file: /cvsroot/nice/Nice/testsuite/compiler/methods/overriding.testsuite,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** overriding.testsuite 3 Mar 2004 09:40:26 -0000 1.5 --- overriding.testsuite 17 Mar 2004 00:36:45 -0000 1.6 *************** *** 185,186 **** --- 185,216 ---- void foo(A a) {} override void foo(B b) {} + + /// PASS + /// Toplevel + <T> void foo(T x) {} + override void foo(String s) {} + + /// PASS + List<String> list = new ArrayList(); + list.add("abc"); + list.foo(); + /// Toplevel + <T> void foo(Collection<T> list) {} + // This is NOT an override + void foo(List<int> list) + { + int i = list[0]+1; + } + + /// FAIL + /// Toplevel + <T> void foo(Collection<T> list) {} + // This is NOT an override + override void foo(List<int> list) {} + + /// FAIL + /// Toplevel + class A<+T> {} + void foo(A<Object> x) {} + // This is NOT an override + override void foo(A<String> x) {} |