1.0.47.3: better DEFSTRUCT constructor type declarations
authorNikodemus Siivola <nikodemus@random-state.net>
Tue, 29 Mar 2011 11:55:58 +0000 (11:55 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Tue, 29 Mar 2011 11:55:58 +0000 (11:55 +0000)
commit2fdd5c9276ba68458e1186c8ae3b7b5a42729a6f
treee2dde84cff12c257c693eebda2c319c15bb683be
parentf42877dcb11f1db580c76c37ae86541b901ac281
1.0.47.3: better DEFSTRUCT constructor type declarations

  Lift the argument types into the FTYPE declarations, instead
  of just having them internal to the constructor functions.

  Prior to this the declared type of MAKE-FOO after

    (DEFSTRUCT FOO (X 0.0 :TYPE SINGLE-FLOAT) (Y))

  was (FUNCTION * (VALUES FOO &OPTIONAL)), after this it
  becomes

   (FUNCTION (&KEY (:X SINGLE-FLOAT) (:Y T)) (VALUES FOO &OPTIONAL))

  as appropriate -- allowing types to propagate better, and providing
  warnings for signature mismatches even if the constructor is not
  inlined.

  Also fix whitespace damage in ntrace.lisp.
src/code/defstruct.lisp
src/code/ntrace.lisp
version.lisp-expr