Cleanup tc-app-objects a bit.

original commit: 16afe191d8c39d518f6496a45a89e9de05f6921b
This commit is contained in:
Eric Dobson 2013-05-25 13:38:33 -07:00
parent ce0e58646c
commit 032fffb911

View File

@ -53,17 +53,16 @@
n (stringify tnames)))
(for-each (match-lambda
[(list tname tfty opt?)
(let ([s (dict-ref name-assoc tname
(lambda ()
(unless opt?
(tc-error/delayed "value not provided for named init arg ~a"
tname))
#f))])
(if s
;; this argument was present
(tc-expr/check s (ret tfty))
;; this argument wasn't provided, and was optional
#f))])
(define s
(dict-ref name-assoc tname
(lambda ()
(unless opt?
(tc-error/delayed "value not provided for named init arg ~a"
tname))
#f)))
;; Only check the argument if it is provided
(when s
(tc-expr/check s (ret tfty)))])
tnflds)
(ret (make-Instance c))]
[(tc-result1: t)