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:
parent
ebb65d4163
commit
05ecb2b8f0
2 changed files with 27 additions and 3 deletions
|
|
@ -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."
|
||||
|
|
|
|||
|
|
@ -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 ;;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue