From 7229cfefc9d8bcb2f70e56f8d680bd5cf9993502 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Kochma=C5=84ski?= Date: Thu, 5 Mar 2015 23:45:22 +0100 Subject: [PATCH] compilator: fixes issue #3 (regression on package :lapack). cmptype-arith.lsp: problem introduced in commit c0b23555c67c24c7ddb23bc2a0f2129754c2058a which added empty &optional clause and &allow-other-keys capability to typespec for values. Problem was, that multiple &optional keywords in typespec it considered error, while '(VALUES &OPTIONAL T &OPTIONAL T) should return as optional part, list (T &optional T) - even if it looks weird. --- src/cmp/cmptype-arith.lsp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/cmp/cmptype-arith.lsp b/src/cmp/cmptype-arith.lsp index 7416bbe65..bceabf2c9 100644 --- a/src/cmp/cmptype-arith.lsp +++ b/src/cmp/cmptype-arith.lsp @@ -176,9 +176,9 @@ (when l (cmperr "Syntax error in type expression ~S" type))) (&optional - (when optional-flag - (cmperr "Syntax error in type expression ~S" type)) - (setf optional-flag t)) + (if optional-flag + (push typespec optional) + (setf optional-flag t))) (&rest (when (or (null l) (not (member (rest l) '(() (&allow-other-keys))