Part 1 of 2-part fix for lp#309102 "Explicit-check defknowns"
commit2b1696ecbe34d00de0b8291d7a12eb8db7fb316f
authorDouglas Katzman <dougk@google.com>
Mon, 9 Nov 2015 05:47:14 +0000 (9 00:47 -0500)
committerDouglas Katzman <dougk@google.com>
Mon, 9 Nov 2015 05:55:39 +0000 (9 00:55 -0500)
treeb80376716df409aef3ccfc79aa3bf1eaebbfa5c2
parent9bb31a5620372c33b0e1a1aa96ac7a5376f34b5d
Part 1 of 2-part fix for lp#309102 "Explicit-check defknowns"

This change adds a local declaration for EXPLICIT-CHECK,
which for the moment is redundant with the globaldb attribute.
(As a sanity check, both must be present or not present.)

Globaldb was ill-suited to represent this aspect of a function.
Explicit-check pertains how the function's body is expressed,
and not the "contract" of the function. If the function was stated
to explicitly check argument/result types, but it wasn't written
that way, it's a problem. A local declaration does not prevent
this from happening, but lessens the chance of it.
36 files changed:
contrib/sb-simple-streams/impl.lisp
package-data-list.lisp-expr
src/code/array.lisp
src/code/coerce.lisp
src/code/condition.lisp
src/code/cross-early.lisp
src/code/error.lisp
src/code/fdefinition.lisp
src/code/float.lisp
src/code/irrat.lisp
src/code/late-type.lisp
src/code/list.lisp
src/code/numbers.lisp
src/code/pprint.lisp
src/code/pred.lisp
src/code/print.lisp
src/code/query.lisp
src/code/reader.lisp
src/code/seq.lisp
src/code/sort.lisp
src/code/stream.lisp
src/code/string.lisp
src/code/symbol.lisp
src/code/target-char.lisp
src/code/target-format.lisp
src/code/target-random.lisp
src/code/target-stream.lisp
src/code/toplevel.lisp
src/code/typep.lisp
src/compiler/ctype.lisp
src/compiler/generic/vm-type.lisp
src/compiler/ir1tran-lambda.lisp
src/compiler/ir1tran.lisp
src/pcl/braid.lisp
src/pcl/low.lisp
src/pcl/macros.lisp