(setq args (cddr args))))
(scope-define-function-analyzer provide-theme (name &rest _)
- (when-let ((q (scope--unqoute name))) (scope-report-s q 'theme)))
+ (when-let ((q (scope--unqoute name))) (scope-report-s q 'theme)))
(put 'custom-declare-theme 'scope-analyzer #'scope--analyze-provide-theme)
+(scope-define-function-analyzer eieio-oref (_obj slot)
+ (when-let ((q (scope--unqoute slot))) (scope-report-s q 'slot)))
+
+(dolist (fun '(slot-boundp slot-makeunbound slot-exists-p eieio-oref-default))
+ (put fun 'scope-analyzer #'scope--analyze-eieio-oref))
+
+(scope-define-function-analyzer eieio-oset (_obj slot _value)
+ (when-let ((q (scope--unqoute slot))) (scope-report-s q 'slot)))
+
+(put 'eieio-oset-default 'scope-analyzer #'scope--analyze-eieio-oset)
+
(scope-define-macro-analyzer define-globalized-minor-mode (l global mode turn-on &rest body)
(scope-report-s mode 'function)
(scope-report-s turn-on 'function)
(scope-n l statements)))
(scope-define-macro-analyzer go (_l label)
- ;; Change to a local macro defintion induced by `cl-tagbody'.
+ ;; TODO: Change to a local macro defintion induced by `cl-tagbody'.
(when-let ((bare (scope-sym-bare label))
(pos (alist-get bare scope-label-alist))
(beg (scope-sym-pos label)))
(declaration "Declaration")
(rx-construct "`rx' construct")
(theme "Theme")
+ (slot "Slot")
(widget-type "Widget type")
(type "Type")
(group "Customization group")
(declaration 'font-lock-variable-use-face)
(rx-construct 'elisp-rx)
(theme 'elisp-theme)
+ (slot 'font-lock-builtin-face)
(widget-type 'font-lock-type-face)
(type 'font-lock-type-face)
(group 'font-lock-type-face)