Changeset 12119


Ignore:
Timestamp:
08/27/09 09:33:21 (12 years ago)
Author:
Mark Evenson
Message:

Fix ticket#61 for THE evaluated with DEFTYPEd forms.

Shouldn't the call to the Lisp-side TYPEP be added at the "top-level"
typep() defined on LispObject?

Location:
trunk/abcl/src/org/armedbear/lisp
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/abcl/src/org/armedbear/lisp/SpecialOperators.java

    r12114 r12119  
    377377        if (type instanceof Symbol
    378378            || type instanceof BuiltInClass)
    379             if (rv.typep(type) == NIL)
    380                 type_error(rv, type);
    381 
     379    if (rv.typep(type) == NIL) {
     380      // Try to call the Lisp-side TYPEP, as we will miss
     381      // DEFTYPEd types.
     382      Symbol typep
     383        = PACKAGE_SYS.findAccessibleSymbol("TYPEP");
     384      LispObject result
     385        = typep.getSymbolFunction().execute(rv, type);
     386      if (result == NIL) {
     387        type_error(rv, type);
     388      }
     389    }
    382390        return rv;
    383391      }
  • trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp

    r12118 r12119  
    79167916                   ((eq name 'LET)
    79177917                    (p2-let/let*-node form target representation))
    7918                    ((eq name 'SETF) ;; SETF functions create
     7918;;                   ((eq name 'LABELS)
     7919;;                    (p2-labels-node form target representation))
     7920;;                   ((eq name 'SETF) ;; SETF functions create
    79197921                    ;; consp block names, if we're unlucky
    7920                     (p2-block-node form target representation))
     7922;;                    (p2-block-node form target representation))
    79217923                   (t
    79227924                    (print name)
Note: See TracChangeset for help on using the changeset viewer.