1.0.12.3: less weakening of type-checks
commit14115e1756e5764ef9e200f331912ae3a48cc4a2
authorNikodemus Siivola <nikodemus@random-state.net>
Mon, 26 Nov 2007 18:06:06 +0000 (26 18:06 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Mon, 26 Nov 2007 18:06:06 +0000 (26 18:06 +0000)
tree913daa0b6994a0b359791c909ef1de7f2dcdf10d
parentf00011f3aa9647d51c87c6f969d0b2b0094aecf2
1.0.12.3: less weakening of type-checks

* WEAKEN-TYPE used to return T for any union-type.  Instead, handle
  union-types implemented by backend properly.

* Also, if no supertype is found, don't replaces with T, as
  eg. oddball union types weakened to T can easily lead to heap
  corruption if the unchecked object ends up being trusted by the
  compiler. (See: WEAKEN-UNION-2 in type.impure.lisp.)
NEWS
src/compiler/checkgen.lisp
tests/type.impure.lisp
version.lisp-expr