File tree Expand file tree Collapse file tree 1 file changed +4
-2
lines changed Expand file tree Collapse file tree 1 file changed +4
-2
lines changed Original file line number Diff line number Diff line change 310310 (expr-contains-p (lambda (x) (and (pair? x) (eq? (car x) 'thisfunction))) expr))
311311
312312(define (make-generator-function name sp-names arg-names body)
313- (let ((arg-names (append sp-names arg-names)))
313+ (let ((arg-names (append sp-names
314+ (map (lambda (n)
315+ (if (eq? n '|#self#|) (gensy) n))
316+ arg-names))))
314317 (let ((body (insert-after-meta body ;; don't specialize on generator arguments
315318 ;; arg-names slots start at 2 (after name)
316319 `((meta nospecialize ,@(map (lambda (idx) `(slot ,(+ idx 2))) (iota (length arg-names))))))))
12111214 (argl (car argl-stmts))
12121215 (name (check-dotop (car argl)))
12131216 (argname (if (overlay? name) (caddr name) name))
1214- ;;
12151217 ;; fill in first (closure) argument
12161218 (adj-decl (lambda (n) (if (and (decl? n) (length= n 2))
12171219 `(|::| |#self#| ,(cadr n))
You can’t perform that action at this time.
0 commit comments