1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-13 15:00:42 -08:00

Nativecomp don't error with undeclared types (bug#6573) (don't merge)

Backporting f38e969e47 from trunk to emacs-30

* test/src/comp-resources/comp-test-funcs.el (comp-test-76573-1-f): New
function.
* lisp/emacs-lisp/comp-cstr.el (comp-supertypes): Don't error if 'type'
is unknown.
This commit is contained in:
Andrea Corallo 2025-06-17 09:06:45 +02:00
parent ebb65d4163
commit 05ecb2b8f0
2 changed files with 27 additions and 3 deletions

View file

@ -336,9 +336,13 @@ Return them as multiple value."
(nreverse res))))
(defun comp-supertypes (type)
"Return the ordered list of supertypes of TYPE."
(or (assq type (comp-cstr-ctxt-typeof-types comp-ctxt))
(error "Type %S missing from typeof-types!" type)))
"Return the ordered list of supertypes of TYPE."
(or (assq type (comp-cstr-ctxt-typeof-types comp-ctxt))
(progn
(display-warning
'native-compiler
(format "Unknown type %S" type))
'(t))))
(defun comp--union-typesets (&rest typesets)
"Union types present into TYPESETS."

View file

@ -562,6 +562,26 @@
(defun comp-test-67883-1-f ()
'#1=(1 . #1#))
(cl-defstruct comp-test-73270-base)
(cl-defstruct
(comp-test-73270-child1 (:include comp-test-73270-base)))
(cl-defstruct
(comp-test-73270-child2 (:include comp-test-73270-base)))
(cl-defstruct
(comp-test-73270-child3 (:include comp-test-73270-base)))
(cl-defstruct
(comp-test-73270-child4 (:include comp-test-73270-base)))
(defun comp-test-73270-1-f (x)
(cl-typecase x
(comp-test-73270-child1 'child1)
(comp-test-73270-child2 'child2)
(comp-test-73270-child3 'child3)
(comp-test-73270-child4 'child4)))
(defun comp-test-76573-1-f ()
(record 'undeclared-type))
;;;;;;;;;;;;;;;;;;;;
;; Tromey's tests ;;