Changeset 4894


Ignore:
Timestamp:
11/25/03 06:41:04 (18 years ago)
Author:
asimon
Message:

SLOW-METHOD-LOOKUP: signal error if there are no applicable methods.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/j/src/org/armedbear/lisp/clos.lisp

    r4873 r4894  
    22;;;
    33;;; Copyright (C) 2003 Peter Graves
    4 ;;; $Id: clos.lisp,v 1.8 2003-11-23 00:58:20 piso Exp $
     4;;; $Id: clos.lisp,v 1.9 2003-11-25 06:41:04 asimon Exp $
    55;;;
    66;;; This program is free software; you can redistribute it and/or
     
    10851085
    10861086(defun slow-method-lookup (gf args classes)
    1087   (let* ((applicable-methods
    1088           (compute-applicable-methods-using-classes gf classes))
    1089          (emfun
    1090           (funcall
    1091            (if (eq (class-of gf) the-class-standard-gf)
    1092                #'std-compute-effective-method-function
    1093                #'compute-effective-method-function)
    1094            gf applicable-methods)))
    1095     (setf (gethash classes (classes-to-emf-table gf)) emfun)
    1096     (funcall emfun args)))
     1087  (let ((applicable-methods
     1088         (compute-applicable-methods-using-classes gf classes)))
     1089    (if applicable-methods
     1090        (let ((emfun
     1091               (funcall
     1092                (if (eq (class-of gf) the-class-standard-gf)
     1093                    #'std-compute-effective-method-function
     1094                  #'compute-effective-method-function)
     1095                gf applicable-methods)))
     1096          (setf (gethash classes (classes-to-emf-table gf)) emfun)
     1097          (funcall emfun args))
     1098      (error "no methods applicable for generic function ~S with arguments ~S of classes ~S" gf args classes))))
    10971099
    10981100;;; compute-applicable-methods-using-classes
Note: See TracChangeset for help on using the changeset viewer.