diff --git a/src/CHANGELOG b/src/CHANGELOG index cbeee3c39..a2116da51 100755 --- a/src/CHANGELOG +++ b/src/CHANGELOG @@ -25,6 +25,10 @@ ECL 9.10.3: - ECL ignored the IGNORABLE declaration. + - ECL could not compile DEFMETHOD forms whose arguments referenced unfinalized + classes. The actual bug was related to SUBTYPEP not being able to determine + the relation between classes when one is unfinalized. + * Sockets: - The socket option TCP_NODELAY option used the wrong interface: SOL_SOCKET diff --git a/src/lsp/predlib.lsp b/src/lsp/predlib.lsp index 93b7ee260..a42ddb50e 100644 --- a/src/lsp/predlib.lsp +++ b/src/lsp/predlib.lsp @@ -858,6 +858,8 @@ if not possible." (eq class (find-class name 'nil)) (or (find-registered-tag name) (find-built-in-tag name)))) + (and (not (clos::class-finalized-p class)) + (throw '+canonical-type-failure+ nil)) (register-type class #'(lambda (c) (or (si::instancep c) (symbolp c))) #'(lambda (c1 c2)