]> git.eshelyaron.com Git - emacs.git/commitdiff
Add missing module types to cl--typeof-types.
authorPhilipp Stephani <phst@google.com>
Sun, 28 Jan 2018 19:39:58 +0000 (20:39 +0100)
committerPhilipp Stephani <phst@google.com>
Sun, 28 Jan 2018 19:39:58 +0000 (20:39 +0100)
* lisp/emacs-lisp/cl-preloaded.el (cl--typeof-types): Add module
types.

* test/src/emacs-module-tests.el (emacs-module-tests--generic): New
helper function.
(module-function-object, mod-test-userptr-fun-test): Test that type
dispatching works with module types.

lisp/emacs-lisp/cl-preloaded.el
test/src/emacs-module-tests.el

index 364de03133479cbdb81f8189da2f7efcf3256386..2a70f9b9248a84f4992a63decdd76437d58dab8a 100644 (file)
     (marker number-or-marker atom)
     (overlay atom) (float number atom) (window-configuration atom)
     (process atom) (window atom) (subr atom) (compiled-function function atom)
+    (module-function function atom)
     (buffer atom) (char-table array sequence atom)
     (bool-vector array sequence atom)
     (frame atom) (hash-table atom) (terminal atom)
     (thread atom) (mutex atom) (condvar atom)
     (font-spec atom) (font-entity atom) (font-object atom)
     (vector array sequence atom)
+    (user-ptr atom)
     ;; Plus, really hand made:
     (null symbol list sequence atom))
   "Alist of supertypes.
index 162af21bbec864672924e1160036d91481d5ea48..a6407524ad7a244418e7f31c62efb87db6cf16dc 100644 (file)
 
 (require 'mod-test mod-test-file)
 
+(cl-defgeneric emacs-module-tests--generic (_))
+
+(cl-defmethod emacs-module-tests--generic ((_ module-function))
+  'module-function)
+
+(cl-defmethod emacs-module-tests--generic ((_ user-ptr))
+  'user-ptr)
+
 ;;
 ;; Basic tests.
 ;;
@@ -74,6 +82,7 @@ changes."
     (should (module-function-p func))
     (should (functionp func))
     (should (equal (type-of func) 'module-function))
+    (should (eq (emacs-module-tests--generic func) 'module-function))
     (should (string-match-p
              (rx bos "#<module function "
                  (or "Fmod_test_sum"
@@ -149,6 +158,7 @@ changes."
          (r (mod-test-userptr-get v)))
 
     (should (eq (type-of v) 'user-ptr))
+    (should (eq (emacs-module-tests--generic v) 'user-ptr))
     (should (integerp r))
     (should (= r n))))