From ec7de1aa1ad2bc14b3b1572ea4cc5024a6c662ae Mon Sep 17 00:00:00 2001 From: Uko Kokņevičs Date: Sat, 18 Oct 2025 03:06:09 +0300 Subject: Add ocicl lint --- src/tg/type-macros.lisp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src/tg/type-macros.lisp') diff --git a/src/tg/type-macros.lisp b/src/tg/type-macros.lisp index 552c908..b9d649c 100644 --- a/src/tg/type-macros.lisp +++ b/src/tg/type-macros.lisp @@ -15,7 +15,10 @@ (defparameter +unique+ (gensym)) - (defun make-field (name type &optional (default +unique+) &key (skip-if-default (not (eq default +unique+)))) + ;; TODO: Fix optional-and-key ! + (defun make-field (name type ; lint:suppress avoid-optional-and-key + &optional (default +unique+) + &key (skip-if-default (not (eq default +unique+)))) (let ((default (if (eq default +unique+) `(error ,(format nil "No value given for ~A" name)) default))) @@ -70,7 +73,7 @@ ,@(emit-collect-nondefault-fields name fields obj (lambda (field value) - `(setf ,result (cons ,(emit-coerced-field field value) ,result)))) + `(push ,(emit-coerced-field field value) ,result))) ,result)))) (defun emit-let-gethash (field source) @@ -81,8 +84,8 @@ (let ((type-sym (gensym "TYPE-SYM")) (source (gensym "SOURCE"))) `(defmethod parse-value ((,type-sym (eql ',name)) ,source) - (let ,(iter (for field in fields) - (collect (emit-let-gethash field source))) + (let (,@(iter (for field in fields) + (collect (emit-let-gethash field source)))) (,(type-constructor name) ,@(iter (for field in fields) (appending (emit-constructor-args field)))))))) @@ -92,7 +95,7 @@ (stream (gensym "STREAM")) (depth (gensym "DEPTH")) (pprint-args (gensym "PPRINT-ARGS"))) - `(defun ,printer-name (,obj ,stream ,depth) + `(defun ,printer-name (,obj ,stream ,depth) ; lint:suppress lambda-list-invalid (declare (ignore ,depth)) (let (,pprint-args) ,@(emit-collect-nondefault-fields -- cgit v1.2.3