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

Bug #1317308 reported by Mark Cox on 2014-05-07
This bug affects 1 person
Affects Status Importance Assigned to Milestone

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,

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


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