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")