From 40bc59d5122ae38f7e8f656e140b3caebf982a6a Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Mon, 14 Jan 2019 09:07:42 -0700 Subject: [PATCH] schemify: fix handling of # as 'inferred-name It's not supposed to suppress a srcloc-based name. --- racket/src/schemify/infer-name.rkt | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/racket/src/schemify/infer-name.rkt b/racket/src/schemify/infer-name.rkt index b3c76f4ca6..c75cc8039b 100644 --- a/racket/src/schemify/infer-name.rkt +++ b/racket/src/schemify/infer-name.rkt @@ -4,15 +4,12 @@ (provide infer-procedure-name) (define (infer-procedure-name orig-s new-s) + (define inferred-name (wrap-property orig-s 'inferred-name)) (cond - [(wrap-property orig-s 'inferred-name) - => (lambda (v) - (if (void? v) - (wrap-property-set (reannotate orig-s new-s) - 'inferred-name - ;; Hack: "[" means "no name" - '|[|) - new-s))] + [(symbol? inferred-name) + ;; Let propagation of properties (at the call site of + ;; `infer-procedure-name`) take care of it + new-s] [else (define-values (src line col pos) (wrap-source orig-s)) (define (add-property str) @@ -34,6 +31,13 @@ (string-append (source->string src) "::" (number->string pos)))] + [(void? inferred-name) + ;; We can't provide a source name, but explicity + ;; suppress any other inferred name: + (wrap-property-set (reannotate orig-s new-s) + 'inferred-name + ;; Hack: "[" means "no name" + '|[|)] [else new-s])])) (define (source->string src)