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

Bug #1317308 reported by Mark Cox on 2014-05-07
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
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

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  Edit
Everyone can see this information.

Other bug subscribers