[m-rev.] for review: correct type of java list.cons
Peter Wang
novalazy at gmail.com
Mon Aug 23 13:07:38 AEST 2010
For review by Ian.
Branches: main, 10.04
doc/reference_manual.texi:
library/list.m:
Correct the type of the Java method `list.cons' so that the
head element may have a subtype of the list element type.
Add a comment about how to use `list.empty_list'.
diff --git a/doc/reference_manual.texi b/doc/reference_manual.texi
index 6ad36ef..0c48bd6 100644
--- a/doc/reference_manual.texi
+++ b/doc/reference_manual.texi
@@ -7110,7 +7110,8 @@ boolean list.is_empty(List_1<E> list) // test if a list is empty
E list.det_head(List_1<E> list) // get the head of a list
List_1<E> list.det_tail(List_1<E> list) // get the tail of a list
List_1<E> list.empty_list() // create an empty list
-List_1<E> list.cons(E head, List_1<E> tail) // construct a list with
+<E, F extends E> List_1<E> list.cons(F head, List_1<E> tail)
+ // construct a list with
// the given head and tail
@end example
diff --git a/library/list.m b/library/list.m
index 99433e5..a112c37 100644
--- a/library/list.m
+++ b/library/list.m
@@ -2867,14 +2867,18 @@ list_to_doc_2([X | Xs]) = Doc :-
** the interfaces would expect type_info arguments.
*/
+/*
+** If you need to specify the type parameter, you must use the qualified
+** method name, e.g. list.<Integer>empty_list()
+*/
public static <E>
List_1<E> empty_list()
{
return new List_1.F_nil_0<E>();
}
-public static <E>
-List_1<E> cons(E head, List_1<E> tail)
+public static <E, F extends E>
+List_1<E> cons(F head, List_1<E> tail)
{
return new List_1.F_cons_2<E>(head, tail);
}
--------------------------------------------------------------------------
mercury-reviews mailing list
Post messages to: mercury-reviews at csse.unimelb.edu.au
Administrative Queries: owner-mercury-reviews at csse.unimelb.edu.au
Subscriptions: mercury-reviews-request at csse.unimelb.edu.au
--------------------------------------------------------------------------
More information about the reviews
mailing list