From 49721c4bc542ae5faafed78768aae0fa6d892ed5 Mon Sep 17 00:00:00 2001 From: Martin Date: Mon, 18 Sep 2017 10:39:56 +0200 Subject: [PATCH] CCFQueue.take_back_exn raised InvalidArg instead of Empty on an empty queue --- src/data/CCFQueue.ml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/data/CCFQueue.ml b/src/data/CCFQueue.ml index dfab9c50..de6848f1 100644 --- a/src/data/CCFQueue.ml +++ b/src/data/CCFQueue.ml @@ -131,6 +131,10 @@ let take_front q = try Some (take_front_exn q) with Empty -> None +(*$T + take_front empty = None +*) + let take_front_l n q = if n<0 then ( invalid_arg "take_back_l: cannot take negative number of arguments" @@ -161,7 +165,7 @@ let take_front_while p q = let rec take_back_exn : 'a. 'a t -> 'a t * 'a = fun q -> match q with - | Shallow Zero -> invalid_arg "FQueue.take_back_exn" + | Shallow Zero -> raise Empty | Shallow (One x) -> empty, x | Shallow (Two (x,y)) -> _single x, y | Shallow (Three (x,y,z)) -> Shallow (Two(x,y)), z @@ -185,6 +189,10 @@ let take_back q = try Some (take_back_exn q) with Empty -> None +(*$T + take_back empty = None +*) + let take_back_l n q = if n<0 then ( invalid_arg "take_back_l: cannot take negative number of arguments"