From 3daec14cbb091b6dacee1fad2916e72462f7f08b Mon Sep 17 00:00:00 2001 From: Asumu Takikawa Date: Tue, 11 Sep 2012 14:43:19 -0400 Subject: [PATCH] racket/generic: better error message in empty case Closes PR 13048 --- collects/racket/private/generic.rkt | 2 +- collects/tests/generic/empty-interface.rkt | 5 +++++ collects/tests/generic/tests.rkt | 3 ++- 3 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 collects/tests/generic/empty-interface.rkt diff --git a/collects/racket/private/generic.rkt b/collects/racket/private/generic.rkt index 7159a26796..c457ffdfe4 100644 --- a/collects/racket/private/generic.rkt +++ b/collects/racket/private/generic.rkt @@ -36,7 +36,7 @@ (identifier? #'name?) (identifier? #'defined-table) (let ([generics (syntax->list #'(generic ...))]) - (and (pair? generics) (andmap identifier? generics)))) + (and (list? generics) (andmap identifier? generics)))) (let* ([idxs (for/list ([i (in-naturals 0)] [_ (syntax->list #'(generic ...))]) i)] diff --git a/collects/tests/generic/empty-interface.rkt b/collects/tests/generic/empty-interface.rkt new file mode 100644 index 0000000000..da30f44d75 --- /dev/null +++ b/collects/tests/generic/empty-interface.rkt @@ -0,0 +1,5 @@ +#lang racket +(require racket/generic) +(define-generics name) +(struct foo () + #:methods gen:name []) \ No newline at end of file diff --git a/collects/tests/generic/tests.rkt b/collects/tests/generic/tests.rkt index f40763cfe9..984dafc025 100644 --- a/collects/tests/generic/tests.rkt +++ b/collects/tests/generic/tests.rkt @@ -11,4 +11,5 @@ "base-interfaces.rkt" "contract.rkt" "from-unstable.rkt" - "poly-contracts.rkt") + "poly-contracts.rkt" + "empty-interface.rkt")