provide more information in inference failures

original commit: 8990459be69c3e720871bff23827826709990c49
This commit is contained in:
Sam Tobin-Hochstadt 2010-06-17 15:02:24 -04:00
parent 9f8b2e4e2b
commit 5618abb4f4
2 changed files with 3 additions and 3 deletions

View File

@ -14,13 +14,13 @@
(define-values (fail-sym exn:infer?)
(let ([sym (gensym 'infer-fail)])
(values sym (lambda (s) (eq? s sym)))))
(values sym (λ (s) (and (pair? s) (eq? (car s) sym))))))
;; why does this have to be duplicated?
;; inference failure - masked before it gets to the user program
(define-syntaxes (fail!)
(syntax-rules ()
[(_ s t) (raise fail-sym)]))
[(_ s t) (raise (list fail-sym s t))]))
;; Widest constraint possible
(define (no-constraint v)

View File

@ -17,7 +17,7 @@
;; inference failure - masked before it gets to the user program
(define-syntaxes (fail!)
(syntax-rules ()
[(_ s t) (raise fail-sym)]))
[(_ s t) (raise (list fail-sym s t))]))
[cnt cset-meet (cset? cset? . -> . cset?)]
[cnt cset-meet* ((listof cset?) . -> . cset?)]
no-constraint