From 1218cbfef679fa6a3dc89dc5f25dda63cc4246a5 Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Sat, 6 Aug 2011 19:20:21 -0500 Subject: [PATCH] improve send error message in the case that there is only one arg closes PR 12091 --- collects/racket/private/class-internal.rkt | 5 ++++- collects/tests/racket/object.rktl | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/collects/racket/private/class-internal.rkt b/collects/racket/private/class-internal.rkt index 1f22ffa869..9d6028a183 100644 --- a/collects/racket/private/class-internal.rkt +++ b/collects/racket/private/class-internal.rkt @@ -3822,7 +3822,10 @@ (flatten-args #'args) #t)))] [(form obj name . args) (raise-syntax-error - #f "method name is not an identifier" stx #'name)]))) + #f "method name is not an identifier" stx #'name)] + [(form obj) + (raise-syntax-error + #f "expected a method name" stx)]))) (values ;; send diff --git a/collects/tests/racket/object.rktl b/collects/tests/racket/object.rktl index fb0abd4f2b..1cf62c844c 100644 --- a/collects/tests/racket/object.rktl +++ b/collects/tests/racket/object.rktl @@ -14,6 +14,9 @@ (test #t class? (class object%)) (syntax-test #'(class object% . 10)) +(error-test #'(send 7) (lambda (x) (and (exn:fail:syntax? x) (regexp-match "method" (exn-message x))))) +(error-test #'(send/apply 7) (lambda (x) (and (exn:fail:syntax? x) (regexp-match "method" (exn-message x))))) + (define (test-init/field init) (teval #`(test #t class? (class object% (#,init)))) (syntax-test #`(class object% (#,init . x)))