(put 'defmacro 'scope-analyzer #'scope--analyze-defun)
(put 'ert-deftest 'scope-analyzer #'scope--analyze-defun)
+(scope-define-macro-analyzer cl-letf (l bindings &rest body)
+ (let ((l0 l))
+ (dolist (binding bindings)
+ (let ((place (car binding)))
+ (if (or (symbol-with-pos-p place) (symbolp place))
+ (let* ((bare (bare-symbol place))
+ (len (length (symbol-name bare)))
+ (beg (scope-sym-pos place)))
+ (when beg (scope-report 'variable beg len beg))
+ (setq l (scope-local-new bare beg l)))
+ (scope-1 l0 place))
+ (scope-1 l0 (cadr binding))))
+ (scope-n l body)))
+
(scope-define-macro-analyzer setf (l &rest args)
(scope-n l args))