From: Dmitry Gutov Date: Fri, 8 Oct 2021 02:23:19 +0000 (+0300) Subject: Add Emacs 27 compatibility hack X-Git-Tag: emacs-28.0.90~363 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=9d8202b45e6beae31f2952d653c0ba7b788c4975;p=emacs.git Add Emacs 27 compatibility hack * lisp/progmodes/xref.el: Add Emacs 27 compatibility hack, for the standalone version of this package. --- diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el index 1feb6ef9153..d6e20c54166 100644 --- a/lisp/progmodes/xref.el +++ b/lisp/progmodes/xref.el @@ -74,6 +74,20 @@ (require 'ring) (require 'project) +(eval-and-compile + (when (version< emacs-version "28") + ;; etags.el in Emacs 26 and 27 uses EIEIO, and its location type + ;; inherits from `xref-location'. + (require 'eieio) + + ;; Suppressing byte-compilation warnings (in Emacs 28+) about + ;; `defclass' not being defined, which happens because the + ;; `require' statement above is not evaluated either. + ;; FIXME: Use `with-suppressed-warnings' when we stop supporting Emacs 26. + (with-no-warnings + (defclass xref-location () () + :documentation "(Obsolete) location represents a position in a file or buffer.")))) + (defgroup xref nil "Cross-referencing commands." :version "25.1" :group 'tools)