From e8eeca4601568d973f3d07af1b3a5f9b34e4f2a7 Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Sat, 30 Jul 2005 16:09:46 +0000 Subject: [PATCH] , svn: r501 --- collects/drscheme/private/language.ss | 4 +-- collects/tests/drscheme/repl-test.ss | 35 +++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/collects/drscheme/private/language.ss b/collects/drscheme/private/language.ss index 6226800d53..2d48d217bb 100644 --- a/collects/drscheme/private/language.ss +++ b/collects/drscheme/private/language.ss @@ -369,8 +369,8 @@ port) 1] [(syntax? value) - (write-special (render-syntax/snip value))] - [else (write-special (value->snip value))]))] + (write-special (render-syntax/snip value) port)] + [else (write-special (value->snip value) port)]))] [print-graph ;; only turn on print-graph when using `write' printing ;; style because the sharing is being taken care of diff --git a/collects/tests/drscheme/repl-test.ss b/collects/tests/drscheme/repl-test.ss index 787f1304c8..9d88663ee4 100644 --- a/collects/tests/drscheme/repl-test.ss +++ b/collects/tests/drscheme/repl-test.ss @@ -573,6 +573,41 @@ There shouldn't be any error (but add in a bug that triggers one to be sure!) void void) + ;; make sure syntax objects only go into good ports + (make-test "(define-syntax (foo stx) (with-handlers ([exn:fail? (lambda (x) #'10)]) (syntax-local-value #'foot))) (foo)" + "10" + "10" + #f + 'interactions + #f + #f + #f + void + void) + + ;; make sure syntax objects don't go into bad ports + (make-test "(parameterize ([current-output-port (open-output-string)]) (write #'1))" + "" + "" + #f + 'interactions + #f + #f + #f + void + void) + + (make-test "(parameterize ([current-output-port (open-output-string)]) (fprintf (current-error-port) \"~e\" #'foot))" + "#" + "#" + #f + 'interactions + #f + #f + #f + void + void) + (make-test ;; the begin/void combo is to make sure that no value printout ;; comes and messes up the source location for the error.