Subject: bug#25627: 25.1; `help-make-xrefs' loads `cl-extra.el' now

From: Drew Adams <[email-masked]>
Date: Sun, 5 Feb 2017 11:24:52 -0800 (PST)

It's also not clear to me why replacing the 3 `cond' clauses
used previously by the clause that uses `cl-some' is TRT (an
improvement). Seems to me like a degradation (bug), but I
don't have a test case.

Was that done to fix some bug?

The previous code was able to in some cases determine that
the symbol is a face or that it is a variable or that it is
a function.  That was replaced by the simple `cl-some' clause,
which just treats it as a symbol (producing all possible help
for it).

If that's the approach, why not just do that in all cases?

It looks like someone came up with `describe-symbol-backends'
for some other purpose and decided it could be reused here:
only the second element of each 3-element list entry is used
here.

Could you please state the rationale behind this change,
even if that is not directly related to this bug, which is
about unnecessarily loading `cl-extra.el'.  Thx.

These are the 3 `cond' clauses that were replaced by the
generic `cl-some' clause:

((and
  (facep sym)
  (save-match-data (looking-at "[ \t\n]+face\\W")))
 (help-xref-button 8 'help-face sym))
((and (or (boundp sym)
	  (get sym 'variable-documentation))
      (fboundp sym))
 ;; We can't intuit whether to use the
 ;; variable or function doc -- supply both.
 (help-xref-button 8 'help-symbol sym))
((and
  (or (boundp sym)
      (get sym 'variable-documentation))
  (or
   (documentation-property
    sym 'variable-documentation)
   (documentation-property
    (indirect-variable sym)
    'variable-documentation)))
 (help-xref-button 8 'help-variable sym))
((fboundp sym)
 (help-xref-button 8 'help-function sym)))))))