Better error message for non-existent generics groups.

Closes PR13671.
(cherry picked from commit aac22e1ce5)
This commit is contained in:
Vincent St-Amour 2013-04-08 11:19:44 -04:00 committed by Ryan Culpepper
parent c1ddadf05d
commit 8ae7e16a62
3 changed files with 17 additions and 1 deletions

View File

@ -319,7 +319,8 @@
(raise-syntax-error #f
"not a name for a generics group"
gen:foo gen:foo))
(unless (identifier? gen:foo) (bad-generics))
(unless (and (identifier? gen:foo) (identifier-binding gen:foo))
(bad-generics))
(define gen:foo-val (syntax-local-value gen:foo))
(unless (and (list? gen:foo-val)
(>= (length gen:foo-val) 1))

View File

@ -0,0 +1,14 @@
#lang racket/base
(require racket/generic unstable/macro-testing)
(module+ test
(require rackunit)
(check-exn #rx"not a name for a generics group"
(lambda () (convert-compile-time-error
(struct foo () #:methods 3))))
(check-exn #rx"not a name for a generics group"
(lambda () (convert-compile-time-error
(struct foo () #:methods bad))))
)

View File

@ -9,6 +9,7 @@
(submod "equal+hash.rkt" test)
(submod "custom-write.rkt" test)
(submod "defaults.rkt" test)
(submod "errors.rkt" test)
"syntax-errors.rkt"
"base-interfaces.rkt"
"contract.rkt"