From 735881831b7424f2011e2d9295676c7823bc8f75 Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Sat, 11 Oct 2014 22:35:41 -0500 Subject: [PATCH] add contract to 'table' --- pkgs/pict-pkgs/pict-doc/pict/scribblings/pict.scrbl | 4 ++-- pkgs/pict-pkgs/pict-lib/pict/main.rkt | 12 +++++++++++- pkgs/pict-pkgs/pict-lib/pict/private/pict.rkt | 2 -- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/pkgs/pict-pkgs/pict-doc/pict/scribblings/pict.scrbl b/pkgs/pict-pkgs/pict-doc/pict/scribblings/pict.scrbl index b215512959..871d584d42 100644 --- a/pkgs/pict-pkgs/pict-doc/pict/scribblings/pict.scrbl +++ b/pkgs/pict-pkgs/pict-doc/pict/scribblings/pict.scrbl @@ -674,8 +674,8 @@ Like @racket[pin-over], but @racket[pict] is drawn before @defproc[(table [ncols exact-positive-integer?] [picts (non-empty-listof pict?)] - [col-aligns (list*of (pict? pict? -> pict?))] - [row-aligns (list*of (pict? pict? -> pict?))] + [col-aligns (list*of (->* () #:rest (listof pict?) pict?))] + [row-aligns (list*of (->* () #:rest (listof pict?) pict?))] [col-seps (list*of real?)] [row-seps (list*of real?)]) pict?]{ diff --git a/pkgs/pict-pkgs/pict-lib/pict/main.rkt b/pkgs/pict-pkgs/pict-lib/pict/main.rkt index 3bc8ebce1c..5daf03affb 100644 --- a/pkgs/pict-pkgs/pict-lib/pict/main.rkt +++ b/pkgs/pict-pkgs/pict-lib/pict/main.rkt @@ -23,8 +23,18 @@ htl-append hbl-append cellophane - dc) + dc + table) (contract-out + [table (->i ([ncols exact-positive-integer?] + [picts (non-empty-listof pict?)] + [col-aligns (list*of (->* () #:rest (listof pict?) pict?))] + [row-aligns (list*of (->* () #:rest (listof pict?) pict?))] + [col-seps (list*of real?)] + [row-seps (list*of real?)]) + #:pre (ncols picts) + (zero? (remainder (length picts) ncols)) + [result pict?])] [dc (->i ([draw (-> (is-a?/c dc<%>) real? real? any)] [w real?] [h real?]) diff --git a/pkgs/pict-pkgs/pict-lib/pict/private/pict.rkt b/pkgs/pict-pkgs/pict-lib/pict/private/pict.rkt index 1fb892b7f3..0bc369b6a0 100644 --- a/pkgs/pict-pkgs/pict-lib/pict/private/pict.rkt +++ b/pkgs/pict-pkgs/pict-lib/pict/private/pict.rkt @@ -875,8 +875,6 @@ (define table (case-lambda [(ncol cells col-aligns row-aligns col-seps row-seps) - (unless (positive? ncol) - (raise-type-error 'table "positive column count" ncol)) (let ([count (length cells)]) (unless (zero? (remainder count ncol)) (error 'table "cell count isn't divisble by the provided column count"))