From 397260eb138abb89c1ef928eb8f471eaaeddc60b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Georges=20Dup=C3=A9ron?= Date: Fri, 19 May 2017 00:01:10 +0200 Subject: [PATCH] Circumvent https://github.com/racket/racket/issues/1697 --- private/pure-function.rkt | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/private/pure-function.rkt b/private/pure-function.rkt index 71736b7..e32430d 100644 --- a/private/pure-function.rkt +++ b/private/pure-function.rkt @@ -85,13 +85,21 @@ )))) (define-for-syntax (built-in-pure-function? id) + (define (empty-mpi? mpi) + (equal? (call-with-values (λ () (module-path-index-split mpi)) + list) + '(#f #f))) (or (free-id-set-member? built-in-pure-functions-free-id-set id) - (match (identifier-binding id) - [(list (app collapse-module-path-index '(lib "racket/private/kw.rkt")) - 'make-optional-keyword-procedure - _ _ _ _ _) - #t] - [_ #f]))) + (let ([ib (identifier-binding id)]) + (match ib + ;; circumvent https://github.com/racket/racket/issues/1697 + [(list* (? empty-mpi?) _) #f] + [(list* (app collapse-module-path-index + '(lib "racket/private/kw.rkt")) + 'make-optional-keyword-procedure + _) + #t] + [_ #f])))) (define-syntax (def-built-in-set stx) (syntax-case stx ()