From b1c6ee03c41e0db97989ae38e70da4d8263e09d1 Mon Sep 17 00:00:00 2001
From: "James M. Lawrence"
Date: Fri, 25 Jul 2014 11:36:53 -0400
Subject: [PATCH] Fix default ARRAY-INDEX and ARRAY-LENGTH.
ARRAY-DIMENSION-LIMIT is an exclusive upper bound.
Signed-off-by: Attila Lendvai
---
types.lisp | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/types.lisp b/types.lisp
index 6aa722f..1942d0e 100644
--- a/types.lisp
+++ b/types.lisp
@@ -1,14 +1,14 @@
(in-package :alexandria)
-(deftype array-index (&optional (length array-dimension-limit))
+(deftype array-index (&optional (length (1- array-dimension-limit)))
"Type designator for an index into array of LENGTH: an integer between
-0 (inclusive) and LENGTH (exclusive). LENGTH defaults to
+0 (inclusive) and LENGTH (exclusive). LENGTH defaults to one less than
ARRAY-DIMENSION-LIMIT."
`(integer 0 (,length)))
-(deftype array-length (&optional (length array-dimension-limit))
+(deftype array-length (&optional (length (1- array-dimension-limit)))
"Type designator for a dimension of an array of LENGTH: an integer between
-0 (inclusive) and LENGTH (inclusive). LENGTH defaults to
+0 (inclusive) and LENGTH (inclusive). LENGTH defaults to one less than
ARRAY-DIMENSION-LIMIT."
`(integer 0 ,length))
--
2.22.0