From 9d8202b45e6beae31f2952d653c0ba7b788c4975 Mon Sep 17 00:00:00 2001 From: Dmitry Gutov Date: Fri, 8 Oct 2021 05:23:19 +0300 Subject: [PATCH] Add Emacs 27 compatibility hack * lisp/progmodes/xref.el: Add Emacs 27 compatibility hack, for the standalone version of this package. --- lisp/progmodes/xref.el | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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) -- 2.39.5