Changeset 11263


Ignore:
Timestamp:
Oct 30, 2008, 3:03:36 PM (11 years ago)
Author:
gz
Message:

Propagate r11262 to trunk

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/compiler/optimizers.lisp

    r11160 r11263  
    18691869  (let* ((ctype (if (nx-form-typep a 'array env)
    18701870                  (specifier-type (nx-form-type a env) env)))
    1871          (type (if ctype (type-specifier (array-ctype-specialized-element-type ctype))))
    1872          (useful (unless (or (eq type *) (eq type t))
    1873                    type)))
     1871         (ectype (typecase ctype
     1872                   (array-ctype (array-ctype-specialized-element-type ctype))
     1873                   (union-ctype (when (every #'array-ctype-p (union-ctype-types ctype))
     1874                                  (%type-union
     1875                                   (mapcar (lambda (ct) (array-ctype-specialized-element-type ct))
     1876                                           (union-ctype-types ctype)))))))
     1877         (etype (and ectype (type-specifier ectype)))
     1878         (useful (unless (or (eq etype *) (eq etype t))
     1879                   etype)))
    18741880    (if (= 2 (length subscripts))
    18751881      (setq call `(%aref2 ,a ,@subscripts))
Note: See TracChangeset for help on using the changeset viewer.