Closed jbclements closed 2 years ago
Here's a simpler program with the same error:
#lang typed/racket/base
(require typed/rackunit)
(#%app check-equal? 1234 1234)
Arguably even simpler:
#lang typed/racket
(require typed/rackunit)
check-equal?
with output:
Type Checker: No function domains matched in function application:
Domains: Any Any String
Any Any
Arguments: (Listof Any)
in: #%module-begin
The macro stepper suggests that this expands to
(#%plain-module-begin
(#%require typed/rackunit)
(#%expression
(lambda args
(#%app
(let-values (((...ed/rackunit/main.rkt:26:14) check-equal?-imp1)
((temp1) '(3-unsaved-editor 5 0 47 12))
((temp2) 'chk))
(#%app
(#%app
checked-procedure-check-and-extract
struct:keyword-procedure
...ed/rackunit/main.rkt:26:14
keyword-procedure-extract
'(#:expression #:location)
(quote 2))
'(#:expression #:location)
(#%app list temp2 temp1)))
args))))
... just before it signals the error.
This could be as easy as changing a hash-quote into a hash-quote-splice somewhere.
Opinions, @samth ?
@capfredf and I talked about this. The problem is that the application features keyword arguments which the TR type doesn't expect. It's not clear why that application has the same keyword arguments as the inner application, so that requires more investigation.
Many thanks. My apologies for dragging this forward by merging this PR prematurely.
This file
now fails, with this error:
See #153
Originally posted by @jbclements in https://github.com/racket/rackunit/issues/153#issuecomment-1043384124