Non conforming type returned by TYPE-OF for displaced arrays.

Bug #1317308 reported by Mark Cox
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
Fix Released
Undecided
Unassigned

Bug Description

The result of evaluating TYPE-OF on a displaced array returns a type
that involves an AND expression and a NOT expression. e.g.

  (type-of (make-array 5 :displaced-to (make-array 10)))

  => (and (vector t 5) (not simple-array))

According to the CLHS page for TYPE-OF [1] it states that:

1. For any object that is an element of some built-in type:

   ...

   b. the type returned does not involve AND, EQL, MEMBER, NOT, OR,
      SATISFIES, or VALUES.

Thanks to |3b| for identifying the issue on #lisp.

[1] http://www.lispworks.com/documentation/HyperSpec/Body/f_tp_of.htm

Revision history for this message
Stas Boukarev (stassats) wrote :

commit 7dfdf1224921ab0696e95702c1cdf08203c1bf78
Author: Douglas Katzman <email address hidden>
Date: Tue May 27 20:28:28 2014 -0400

    Don't return (AND ... (NOT SIMPLE-ARRAY)) from TYPE-OF.

Changed in sbcl:
status: New → Fix Committed
Changed in sbcl:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.