Changeset 14297
- Timestamp:
- Sep 21, 2010, 8:13:43 PM (14 years ago)
- File:
-
- 1 edited
-
trunk/source/compiler/nx0.lisp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/compiler/nx0.lisp
r14258 r14297 440 440 (let* ((op (acode-operator form))) 441 441 (if (eq op (%nx1-operator fixnum)) 442 'fixnum 442 (let* ((val (cadr form))) 443 `(integer ,val ,val)) 443 444 (if (eq op (%nx1-operator immediate)) 444 445 (type-of (%cadr form)) … … 449 450 (%cadr form)) 450 451 (if (eq op (%nx1-operator typed-form)) 451 ( progn452 (when (and assert (null (nth 3 form)))452 (destructuring-bind (type subform &optional check) (%cdr form) 453 (when (and assert (null check)) 453 454 (setf (%car form) (%nx1-operator type-asserted-form) 455 (%cadr form) 456 (type-specifier 457 (specifier-type `(and ,type ,(acode-form-type subform trust-decls assert)))) 454 458 assert nil)) 455 (if (eq (%cadr form) 'number) 456 (or (acode-form-type (nx-untyped-form form) trust-decls) 457 'number) 458 (%cadr form))) 459 (%cadr form)) 459 460 (if (eq op (%nx1-operator lexical-reference)) 460 461 (locally (declare (special *nx-in-frontend*)) … … 481 482 (caddr form) 482 483 trust-decls) 483 (if (and (acode-form-typep f1 ' floattrust-decls)484 (acode-form-typep f2 ' floattrust-decls))484 (if (and (acode-form-typep f1 'real trust-decls) 485 (acode-form-typep f2 'real trust-decls)) 485 486 486 487 (if (or (acode-form-typep f1 'double-float trust-decls) 487 488 (acode-form-typep f2 'double-float trust-decls)) 488 489 'double-float 489 'single-float))) 490 (if (or (acode-form-typep f1 'single-float trust-decls) 491 (acode-form-typep f2 'single-float trust-decls)) 492 'single-float 493 'float)))) 490 494 (cdr (assq op *nx-operator-result-types*))))))))))))))))) 495 (if (or (null typespec) (eq typespec '*)) (setq typespec t)) 491 496 (when (and (acode-p form) (typep (acode-operator form) 'fixnum) assert) 492 (unless typespec (setq typespec t))493 497 (let* ((new (cons typespec (cons (cons (%car form) (%cdr form)) nil)))) 494 498 (setf (%car form) (%nx1-operator type-asserted-form)
Note:
See TracChangeset
for help on using the changeset viewer.
