Is it possible that that name can leak out in an error message? Robby
On Mon, Dec 9, 2013 at 3:10 PM, Sam Tobin-Hochstadt <sa...@cs.indiana.edu>wrote: > Currently, this program fails with a somewhat bizarre type error: > > #lang typed/racket > > (: foo ([#:k Any] -> Integer)) > (define (foo #:k [s #f]) 0) > > (let: ([i : Integer (foo #:k #t)]) i) > > The reason is that the expansion of keyword applications generates a > name to use for the function (here `foo`), and it uses > `syntax-local-infer-name` to get the name to use. Unfortunately, in > this case, it produces `i`, an identifier which has an extra syntax > property saying that `i` is an `Integer`. Of course, `foo` isn't an > integer, it's a function, and so we get a type error. > > I don't see why the inferred name is the right choice here -- there's > no connection between `i` and the name of the function. I can just > change this to use a fresh name, but I thought I'd ask first. > > Sam > _________________________ > Racket Developers list: > http://lists.racket-lang.org/dev >
_________________________ Racket Developers list: http://lists.racket-lang.org/dev