I haven't found a way to make it happen yet.  But even so, it seems
like the wrong name.

Sam

On Mon, Dec 9, 2013 at 4:16 PM, Robby Findler
<ro...@eecs.northwestern.edu> wrote:
> 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

Reply via email to