Add handling of by-name inits to commented-out class/c use in typed-scheme.

Also, fix class/c section of reference slightly by mentioning the role of
external contracts in class instantiation.

svn: r18542

original commit: 5a488ae7cbf9f973cf89169f5557c12e355a3f39
This commit is contained in:
Stevie Strickland 2010-03-15 08:57:41 +00:00
parent 78214ab410
commit d22cdbcee1

View File

@ -151,13 +151,15 @@
[(names ...) name])
#'(object/c (names fcn-cnts) ...))]
;; init args not currently handled by class/c
[(Class: _ _ (list (list name fcn) ...))
[(Class: _ (list (list by-name-init by-name-init-ty _) ...) (list (list name fcn) ...))
(when flat? (exit (fail)))
(with-syntax ([(fcn-cnts ...) (for/list ([f fcn]) (t->c/fun f #:method #t))]
[(names ...) name])
(with-syntax ([(fcn-cnt ...) (for/list ([f fcn]) (t->c/fun f #:method #t))]
[(name ...) name]
[(by-name-cnt ...) (for/list ([t by-name-init-ty]) (t->c/neg t))]
[(by-name-init ...) by-name-init])
#'class?
#;
#'(class/c (names fcn-cnts) ...))]
#'(class/c (name fcn-cnt) ... (init [by-name-init by-name-cnt] ...)))]
[(Value: '()) #'null?]
[(Struct: nm par flds proc poly? pred? cert acc-ids)
(cond