![]() type->sexp was not capable of converting the variable type to a sexp. This caused problems if the module system wanted to tell the user that the types of exported bindings did not match: config> (define-structure foo (export (bar :syntax)) (open scheme) (begin (define bar 1))) ; no values returned config> ,user > ,open foo Error: exception wrong-type-argument (checked-record-ref '(variable #{Type :value #f #f}) '#{Record-type 14 meta-type} 1) I've now extended TYPE->SEXP by a check for the variable type and let it produce a list with 'VARIABLE as first and the actual type as second element. Likewise, I extended SEXP->TYPE to produce a variable type if 'VARIABEL is the first element of a list. This seems to work but a second look by someone who really understands the type system would be appreciated. (Merge from s48 rev 423) |
||
---|---|---|
.. | ||
binding.scm | ||
cenv.scm | ||
comp-exp.scm | ||
comp-package.scm | ||
comp-prim.scm | ||
comp.scm | ||
config.scm | ||
ddata.scm | ||
for-reify.scm | ||
interface.scm | ||
module-language.scm | ||
mtype.scm | ||
name.scm | ||
node.scm | ||
optimize.scm | ||
package-undef.scm | ||
package.scm | ||
primop.scm | ||
read-form.scm | ||
recon.scm | ||
rules.scm | ||
scan-package.scm | ||
schemify.scm | ||
segment.scm | ||
stack-check.scm | ||
state.scm | ||
syntax.scm | ||
thingie.scm | ||
transform.scm | ||
type.scm | ||
usual.scm | ||
var-util.scm |