Changeset 9390


Ignore:
Timestamp:
May 7, 2008, 11:38:23 PM (11 years ago)
Author:
gz
Message:

make class-has-a-forward-referenced-superclass-p be true for compile-time classes, and make class-finalized-p be false. Fixes spurious warnings as per test ccl.40055-2.

Location:
branches/working-0711/ccl
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/working-0711/ccl/compiler/optimizers.lisp

    r9389 r9390  
    643643    (parse-unknown-type (c) (values nil (parse-unknown-type-specifier c)))
    644644    (error () nil)))
     645
     646#+debugging-version
     647(defun specifier-type-if-known (typespec &optional env)
     648  (handler-bind ((parse-unknown-type (lambda (c)
     649                                       (break "caught unknown-type ~s" c)
     650                                       (return-from specifier-type-if-known
     651                                         (values nil (parse-unknown-type-specifier c)))))
     652                 (error (lambda (c)
     653                          (break "caught error ~s" c)
     654                          (return-from specifier-type-if-known nil))))
     655    (specifier-type typespec env)))
    645656
    646657
  • branches/working-0711/ccl/level-1/l1-clos.lisp

    r9365 r9390  
    154154(defmethod class-default-initargs ((class class)))
    155155(defmethod class-direct-default-initargs ((class class)))
     156
     157(defmethod compile-time-class-p ((class class)) nil)
    156158
    157159(defmethod direct-slot-definition-class ((class std-class) &key (allocation :instance) &allow-other-keys)
     
    572574                       (let* ((fwdref (scan-forward-refs s seen)))
    573575                         (when fwdref (return fwdref)))))))))
    574     (scan-forward-refs original ())))
     576    (or (compile-time-class-p original)
     577        (scan-forward-refs original ()))))
    575578
    576579(defun class-forward-referenced-superclasses (original)
     
    625628    (finalize-inheritance class)
    626629    (return-from update-class))
    627   (when (or finalizep
    628             (class-finalized-p class)
    629             (not (class-has-a-forward-referenced-superclass-p class)))
     630  (when (or finalizep (class-finalized-p class))
    630631    (let* ((cpl (update-cpl class (compute-class-precedence-list  class))))
    631632      ;; This -should- be made to work for structure classes
     
    12011202;;; For %compile-time-defclass
    12021203(defclass compile-time-class (class) ())
     1204
     1205(defmethod compile-time-class-p ((class compile-time-class))
     1206  t)
     1207
     1208(defmethod class-finalized-p ((class compile-time-class))
     1209  nil)
    12031210
    12041211
Note: See TracChangeset for help on using the changeset viewer.