Improve errors.

This commit is contained in:
Sam Tobin-Hochstadt 2008-09-08 13:27:38 -04:00
parent ff85152f59
commit 8df7a46493
6 changed files with 9 additions and 9 deletions

View File

@ -27,8 +27,8 @@
(define var-table (make-weak-hasheq))
;; maps Type to List[Cons[Symbol,Variance]]
(define (free-idxs* t) (hash-ref index-table t (lambda _ (error "type not in index-table" (syntax-e t)))))
(define (free-vars* t) (hash-ref var-table t (lambda _ (error "type not in var-table" (syntax-e t)))))
(define (free-idxs* t) (hash-ref index-table t (lambda _ (int-err "type ~a not in index-table" (syntax-e t)))))
(define (free-vars* t) (hash-ref var-table t (lambda _ (int-err "type ~a not in var-table" (syntax-e t)))))
(define empty-hash-table (make-immutable-hasheq null))

View File

@ -1,7 +1,7 @@
#lang scheme/base
(require "type-rep.ss")
(require "type-rep.ss" "tc-utils.ss")
(define infer-param (make-parameter (lambda e (error 'infer "not initialized"))))
(define infer-param (make-parameter (lambda e (int-err "infer not initialized"))))
(define (unify X S T) ((infer-param) X S T (make-Univ) null))
(provide unify infer-param)

View File

@ -213,7 +213,7 @@
;(printf "found a type name ~a~n" #'id)
(make-Name #'id)]
[else
(tc-error/delayed "unbound type ~a" (syntax-e #'id))
(tc-error/delayed "unbound type name ~a" (syntax-e #'id))
Univ])]
[(All . rest) (eq? (syntax-e #'All) 'All) (tc-error "All: bad syntax")]

View File

@ -75,7 +75,7 @@
(define (tc-error/delayed msg #:stx [stx* (current-orig-stx)] . rest)
(let ([stx (locate-stx stx*)])
(unless (syntax? stx)
(int-err "erroneous syntax was not a syntax object" stx (syntax->datum stx*)))
(int-err "erroneous syntax was not a syntax object: ~a ~a" stx (syntax->datum stx*)))
(if (delay-errors?)
(set! delayed-errors (cons (make-err (apply format msg rest) (list stx)) delayed-errors))
(raise-typecheck-error (apply format msg rest) (list stx)))))

View File

@ -34,7 +34,7 @@
[(Latent-Remove-Effect: t) (make-Remove-Effect t v)]
[(True-Effect:) eff]
[(False-Effect:) eff]
[_ (error 'internal-tc-error "can't add var to effect ~a" eff)]))
[_ (int-err "can't add var ~a to effect ~a" v eff)]))
(define-syntax (-> stx)
(syntax-case* stx (:) (lambda (a b) (eq? (syntax-e a) (syntax-e b)))

View File

@ -422,7 +422,7 @@
(match t
[(Poly: n scope)
(unless (= (length names) n)
(error "Wrong number of names"))
(int-err "Wrong number of names: expected ~a got ~a" n (length names)))
(instantiate-many (map *F names) scope)]))
;; the 'smart' constructor
@ -437,7 +437,7 @@
(match t
[(PolyDots: n scope)
(unless (= (length names) n)
(error "Wrong number of names"))
(int-err "Wrong number of names: expected ~a got ~a" n (length names)))
(instantiate-many (map *F names) scope)]))
(print-struct #t)