Changeset 4347
- Timestamp:
- 10/13/03 13:11:20 (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/j/src/org/armedbear/lisp/defclass.lisp
r4342 r4347 2 2 ;;; 3 3 ;;; Copyright (C) 2003 Peter Graves 4 ;;; $Id: defclass.lisp,v 1.2 0 2003-10-13 12:08:23piso Exp $4 ;;; $Id: defclass.lisp,v 1.21 2003-10-13 13:11:20 piso Exp $ 5 5 ;;; 6 6 ;;; This program is free software; you can redistribute it and/or … … 58 58 (defsetf class-precedence-list %set-class-precedence-list) 59 59 (defsetf class-slots %set-class-slots) 60 61 (defun (setf find-class) (new-value symbol &optional errorp environment) 62 (%set-find-class symbol new-value)) 60 63 61 64 (defun canonicalize-direct-slots (direct-slots) … … 502 505 (setf class (apply #'make-instance-standard-class 503 506 (find-class 'standard-class) :name name all-keys)) 504 ( add-classclass))507 (%set-find-class name class)) 505 508 class)) 506 509 … … 1104 1107 (let ((form (method-body method)) 1105 1108 (lambda-list (method-lambda-list method))) 1106 (compile-in-lexical-environment (method-environment method)1107 `(lambda (args next-emfun)1108 (flet ((call-next-method (&rest cnm-args)1109 (if (null next-emfun)1110 (error "No next method for the~@1111 generic function ~S."1112 1113 1114 1115 1116 1117 1118 1109 (compile-in-lexical-environment 1110 (method-environment method) 1111 `(lambda (args next-emfun) 1112 (flet ((call-next-method (&rest cnm-args) 1113 (if (null next-emfun) 1114 (error "no next method for the generic function ~S" 1115 (method-generic-function ',method)) 1116 (funcall next-emfun (or cnm-args args)))) 1117 (next-method-p () 1118 (not (null next-emfun)))) 1119 (apply #'(lambda ,(kludge-arglist lambda-list) 1120 ,form) 1121 args)))))) 1119 1122 1120 1123 ;;; N.B. The function kludge-arglist is used to pave over the differences
Note: See TracChangeset
for help on using the changeset viewer.