From 9447dc9b05603e45837700f3187849ebcd11ac98 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Wed, 3 Feb 2021 17:43:26 -0500 Subject: [PATCH] Fix pretty printing of record types --- CHANGELOG.md | 4 ++++ scheme/cyclone/pretty-print.sld | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0047d968..1193ce24 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ Features - Enhanced `c-define` to emit type checks for parameters. +Bug Fixes + +- Allow `pretty-print` to display contents of a record type. + ## 0.25 - January 25, 2021 Features diff --git a/scheme/cyclone/pretty-print.sld b/scheme/cyclone/pretty-print.sld index dc8b2e81..c4350a63 100644 --- a/scheme/cyclone/pretty-print.sld +++ b/scheme/cyclone/pretty-print.sld @@ -83,7 +83,9 @@ (cond ((pair? obj) (wr-expr obj col)) ((null? obj) (wr-lst obj col)) - ((vector? obj) (wr-lst (vector->list obj) (out "#" col))) + ((or (vector? obj) + (record? obj)) + (wr-lst (vector->list obj) (out "#" col))) ((bytevector? obj) (wr-lst (map char->integer (string->list (utf8->string obj))) (out "#u8" col))) @@ -134,7 +136,7 @@ (spaces (- to col) col)))) (define (pr obj col extra pp-pair) - (if (or (pair? obj) (vector? obj)) ; may have to split on multiple lines + (if (or (pair? obj) (vector? obj) (record? obj)) ; may have to split on multiple lines (let ((result '()) (left (min (+ (- (- width col) extra) 1) max-expr-width))) (generic-write obj display? #f