# Backwards compatibility for compat completions that use have(). # @deprecated should no longer be used; generally not needed with dynamically # loaded completions, and _have is suitable for runtime use. have() To be more specific, it is unset after loading 'compat' completions. Therefore, completions using it can't be dynamically loaded with new bash-completion because there is no 'have' function at dynamic loading time. As far as I understand, upstream suggests not using 'have' at all, and just letting completions load.
IIRC this was fixed in git and in gentoo-bashcomp-20130804 (removed from the tree). http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/app-shells/gentoo-bashcomp/gentoo-bashcomp-20130804.ebuild?hideattic=0&revision=1.4&view=markup
*** This bug has been marked as a duplicate of bug 521164 ***