eholk/harlan

Type inference fails on function parameters that aren't used.

eholk opened this issue · 0 comments

A program like this one doesn't pass type inference:

(module
  (define (main)
    (foo 5)))

(define (foo x)
  (println 5)))

The type inferencer tries to type foo in isolation, but it has no information about x since x is never used. Yet, since foo is called, it should be able to infer from the use-site that x should have type int.