]> git.eshelyaron.com Git - emacs.git/commitdiff
Add Emacs 27 compatibility hack
authorDmitry Gutov <dgutov@yandex.ru>
Fri, 8 Oct 2021 02:23:19 +0000 (05:23 +0300)
committerDmitry Gutov <dgutov@yandex.ru>
Fri, 8 Oct 2021 02:23:19 +0000 (05:23 +0300)
* lisp/progmodes/xref.el: Add Emacs 27 compatibility hack, for the
standalone version of this package.

lisp/progmodes/xref.el

index 1feb6ef9153e6ee6705d8f32e91612d2097bd1e6..d6e20c5416618f9dd0697a66f5cd02e0cf5b1f6d 100644 (file)
 (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)