From 6137f803b241ac0b692222e213388024f7a3ff96 Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Fri, 22 Jun 2012 22:12:54 -0500 Subject: [PATCH] strengthen contract on blockss field of table struct in scribble original commit: f7185bec91d04a28289887947c5a394fd94914fe --- collects/scribble/core.rkt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/collects/scribble/core.rkt b/collects/scribble/core.rkt index 42f8ea6e..9ef225ce 100644 --- a/collects/scribble/core.rkt +++ b/collects/scribble/core.rkt @@ -135,6 +135,12 @@ (and (string? s) (not (regexp-match? #rx"\n" s)))) +(define (same-lengths? ls) + (or (null? ls) + (let ([l1 (length (car ls))]) + (andmap (λ (l) (= l1 (length l))) + (cdr ls))))) + (provide-structs [part ([tag-prefix (or/c false/c string?)] [tags (listof tag?)] @@ -146,7 +152,8 @@ [paragraph ([style style?] [content content?])] [table ([style style?] - [blockss (listof (listof (or/c block? (one-of/c 'cont))))])] + [blockss (and/c (listof (listof (or/c block? (one-of/c 'cont)))) + same-lengths?)])] [delayed-block ([resolve (any/c part? resolve-info? . -> . block?)])] [itemization ([style style?] [blockss (listof (listof block?))])]