(scope-define-macro-analyzer lambda (l args &rest body)
(scope-lambda l args body))
+(defun scope-oclosure-lambda-1 (local0 local bindings args body)
+ (if bindings
+ (let* ((binding (ensure-list (car bindings)))
+ (sym (car binding))
+ (bare (scope-sym-bare sym))
+ (len (length (symbol-name bare)))
+ (beg (scope-sym-pos sym)))
+ (when beg (scope-report 'variable beg len beg))
+ (scope-1 local0 (cadr binding))
+ (scope-oclosure-lambda-1
+ local0 (if bare (scope-local-new bare beg local) local)
+ (cdr bindings) args body))
+ (scope-lambda local args body)))
+
+(defun scope-oclosure-lambda (local spec args body)
+ (let ((type (car-safe spec)))
+ (scope-report-s type 'oclosure))
+ (scope-oclosure-lambda-1 local local (cdr-safe spec) args body))
+
+(scope-define-macro-analyzer oclosure-lambda (l &optional spec args &rest body)
+ (scope-oclosure-lambda l spec args body))
+
(scope-define-macro-analyzer cl-loop (l &rest clauses)
(scope-loop l clauses))