From 2c9e9e7a39876f0af1a5d248ad3a0176423ca1f2 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Fri, 19 Jan 2018 16:45:44 -0500 Subject: [PATCH] Allow local vars to shadown primitives --- scheme/eval.sld | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/scheme/eval.sld b/scheme/eval.sld index 9deb02ba..80a01674 100644 --- a/scheme/eval.sld +++ b/scheme/eval.sld @@ -888,7 +888,9 @@ ;;(newline) (cond ((const? exp) exp) - ((prim? exp) exp) + ((and (prim? exp) ;; Allow lambda vars to shadown primitives + (not (assoc exp local-renamed))) + exp) ((ref? exp) (let ((renamed (assoc exp local-renamed))) (if renamed @@ -1130,7 +1132,8 @@ ;(newline (current-error-port)) (cond ((or (const? this-exp) - (prim? this-exp) + (and (prim? this-exp) + (not (assoc this-exp local-renamed))) (quote? this-exp) (define-c? this-exp)) ;(log this-exp)