1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-04 11:00:45 -08:00

* lisp/cedet/semantic/bovine/c.el (semantic-tag-protection): Silence warning

We used to get

    cedet/semantic/bovine/c.el:1462:25: Warning: value returned from
    (string= s "static") is unused

* lisp/cedet/semantic/bovine/c.el (semantic-tag-protection): Merge two
`when` into an `if` and set `prot` instead of throwing away a result.
Use `pcase` while we're at it.
This commit is contained in:
Stefan Monnier 2021-12-01 22:59:35 -05:00
parent c6dd8dd223
commit aaf0e62048

View file

@ -1466,36 +1466,32 @@ Override function for `semantic-tag-protection'."
(prot nil))
;; Check the modifiers for protection if we are not a child
;; of some class type.
(when (or (not parent) (not (eq (semantic-tag-class parent) 'type)))
(while (and (not prot) mods)
(if (stringp (car mods))
(let ((s (car mods)))
;; A few silly defaults to get things started.
(cond ((or (string= s "extern")
(string= s "export"))
'public)
((string= s "static")
'private))))
(setq mods (cdr mods))))
;; If we have a typed parent, look for :public style labels.
(when (and parent (eq (semantic-tag-class parent) 'type))
(if (not (and parent (eq (semantic-tag-class parent) 'type)))
(while (and (not prot) mods)
(if (stringp (car mods))
(let ((s (car mods)))
;; A few silly defaults to get things started.
(setq prot (pcase s
((or "extern" "export") 'public)
("static" 'private)))))
(setq mods (cdr mods)))
;; If we have a typed parent, look for :public style labels.
(let ((pp (semantic-tag-type-members parent)))
(while (and pp (not (semantic-equivalent-tag-p (car pp) tag)))
(when (eq (semantic-tag-class (car pp)) 'label)
(setq prot
(cond ((string= (semantic-tag-name (car pp)) "public")
'public)
((string= (semantic-tag-name (car pp)) "private")
'private)
((string= (semantic-tag-name (car pp)) "protected")
'protected)))
(pcase (semantic-tag-name (car pp))
("public" 'public)
("private" 'private)
("protected" 'protected)))
)
(setq pp (cdr pp)))))
(when (and (not prot) (eq (semantic-tag-class parent) 'type))
(setq prot
(cond ((string= (semantic-tag-type parent) "class") 'private)
((string= (semantic-tag-type parent) "struct") 'public)
(t 'unknown))))
(pcase (semantic-tag-type parent)
("class" 'private)
("struct" 'public)
(_ 'unknown))))
(or prot
(if (and parent (semantic-tag-of-class-p parent 'type))
'public