Probably something silly but this seems esoteric enough to ask.
On Emacs 29.4:
(defmacro my/setq (name value)
(let ((sym (intern name)))
`(setq ,sym ,value)))
(defvar foo nil)
(my/setq "foo" t) ; this works
(intern (concat "f" "oo")) ; this works
(my/setq (concat "f" "oo") t) ; this fails with...
Debugger entered--Lisp error: (wrong-type-argument stringp (concat "f" "oo"))
intern((concat "f" "oo"))
(let ((sym (intern name))) (list 'setq sym value))
(closure (t) (name value) (let ((sym (intern name))) (list 'setq sym value)))((concat "f" "oo") t)
macroexpand((my/setq (concat "f" "oo") t))
elisp--eval-last-sexp(nil)
TIA,
-Stephane