138 |
(chb (var-is-changed var body)) |
(chb (var-is-changed var body)) |
139 |
(chc (and star (var-is-changed var (cdr bindings))))) |
(chc (and star (var-is-changed var (cdr bindings))))) |
140 |
(let ((type (or exp frt inf outer)) |
(let ((type (or exp frt inf outer)) |
141 |
(ublk (not (or dec chb chc)))) |
(ublk (not (or chb chc)))) |
142 |
(let ((*vars* (if (not star) *vars* |
(let ((*vars* (if (not star) *vars* |
143 |
(cons (c1make-var var nil nil (list (cons var (nil-to-t type)))) *vars*)))) |
(cons (c1make-var var nil nil (list (cons var (nil-to-t type)))) *vars*)))) |
144 |
(if type |
(if type |
148 |
(frt "deduced function return type") |
(frt "deduced function return type") |
149 |
(inf "argument inference") |
(inf "argument inference") |
150 |
(outer "outer scope")) |
(outer "outer scope")) |
151 |
(cond (dec "but is already declared") |
(cond (dec "is already declared, but amending declaration") |
152 |
(chb "but is changed in body") |
(chb "but is changed in body") |
153 |
(chc "but is changed in other bindings") |
(chc "but is changed in other bindings") |
154 |
(t "declaring"))) |
(t "declaring"))) |