Commit b5c8e989 authored by Noam Postavsky's avatar Noam Postavsky
Browse files

Let the cl-typep effects of defclass work during compilation (Bug#27718)

* lisp/emacs-lisp/eieio.el (defclass): Use `define-symbol-prop'
instead of `put'.
* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el
(eieio-tests--dummy-function): Remove.
(eieio-test-25-slot-tests, eieio-test-23-inheritance-check): Don't
expect to fail if compiled.
parent cc30d77e
......@@ -246,7 +246,7 @@ This method is obsolete."
;; test, so we can let typep have the CLOS documented behavior
;; while keeping our above predicate clean.
(put ',name 'cl-deftype-satisfies #',testsym2)
(define-symbol-prop ',name 'cl-deftype-satisfies #',testsym2)
(eieio-defclass-internal ',name ',superclasses ',slots ',options-and-doc)
......
......@@ -529,15 +529,7 @@ METHOD is the method that was attempting to be called."
"This class should break."))
:type 'invalid-slot-type))
(defun eieio-tests--dummy-function ()
;; Dummy function to see if the file is compiled.
t)
(ert-deftest eieio-test-23-inheritance-check ()
;; This test fails when compiled, see Bug#27718.
:expected-result (if (byte-code-function-p
(symbol-function 'eieio-tests--dummy-function))
:failed :passed)
(should (child-of-class-p 'class-ab 'class-a))
(should (child-of-class-p 'class-ab 'class-b))
(should (object-of-class-p eitest-a 'class-a))
......@@ -556,10 +548,6 @@ METHOD is the method that was attempting to be called."
(should (not (cl-typep "foo" 'class-a))))
(ert-deftest eieio-test-24-object-predicates ()
;; This test fails when compiled, see Bug#27718.
:expected-result (if (byte-code-function-p
(symbol-function 'eieio-tests--dummy-function))
:failed :passed)
(let ((listooa (list (class-ab) (class-a)))
(listoob (list (class-ab) (class-b))))
(should (cl-typep listooa '(list-of class-a)))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment