From 7f92443a5f6276a3627fce48665a95527e50bfa4 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sat, 18 May 2019 09:51:37 -0400 Subject: [PATCH] adjust printing of renamed procedures When ">" appears in a procedure name, or when other characters appear that would normally need to be escaped in a symbol, don't add escapes since `#<....>` isn't readable anyway. This change makes renamed procedures print in a consistent way with primitive procedures. Similarly adjust the printing of structure type names. Closes #2646 --- pkgs/racket-test-core/tests/racket/print.rktl | 6 ++++++ racket/src/io/print/named.rkt | 3 +-- racket/src/racket/src/print.c | 9 +++------ 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/pkgs/racket-test-core/tests/racket/print.rktl b/pkgs/racket-test-core/tests/racket/print.rktl index 4465ff7e0c..87da0d47d6 100644 --- a/pkgs/racket-test-core/tests/racket/print.rktl +++ b/pkgs/racket-test-core/tests/racket/print.rktl @@ -144,6 +144,12 @@ (ptest "'(#)" (list add1)) (ptest "'#(#)" (vector add1)) + (ptest "#" add1) + (ptest "#y>" (procedure-rename add1 'x->y)) + (ptest "#" (procedure-rename add1 '|#x,y|)) + (let () + (struct a (x)) + (ptest "#x>" (procedure-rename a-x 'a->x))) (ptest "(arity-at-least 1)" (arity-at-least 1)) diff --git a/racket/src/io/print/named.rkt b/racket/src/io/print/named.rkt index 2247431be7..0a93283606 100644 --- a/racket/src/io/print/named.rkt +++ b/racket/src/io/print/named.rkt @@ -13,8 +13,7 @@ [max-length (write-string/max what o max-length)] [name-str (cond - [(symbol? name) - (symbol->print-string name #:for-type? #t)] + [(symbol? name) (symbol->string name)] [(path? name) ; especially for input & output ports (path->string name)] [(string? name) diff --git a/racket/src/racket/src/print.c b/racket/src/racket/src/print.c index d07c5ea766..390e5457b5 100644 --- a/racket/src/racket/src/print.c +++ b/racket/src/racket/src/print.c @@ -2333,12 +2333,9 @@ print(Scheme_Object *obj, int notdisplay, int compact, Scheme_Hash_Table *ht, name = SCHEME_STRUCT_NAME_SYM(obj); } - s = scheme_symbol_name_and_size(name, (uintptr_t *)&l, - (pp->print_struct - ? SCHEME_SNF_FOR_TS - : (pp->can_read_pipe_quote - ? SCHEME_SNF_PIPE_QUOTE - : SCHEME_SNF_NO_PIPE_QUOTE))); + s = scheme_symbol_val(name); + l = SCHEME_SYM_LEN(name); + print_utf8_string(pp, s, 0, l); PRINTADDRESS(pp, obj); print_utf8_string(pp, ">", 0, 1);