diff --git a/pkgs/racket-test-core/tests/racket/foreign-test.rktl b/pkgs/racket-test-core/tests/racket/foreign-test.rktl index 3a411f43df..f9add1d56d 100644 --- a/pkgs/racket-test-core/tests/racket/foreign-test.rktl +++ b/pkgs/racket-test-core/tests/racket/foreign-test.rktl @@ -164,6 +164,9 @@ (error-test #'(_enum '(x = y)) _enum-exn?) (error-test #'(_enum '(x y) #:unknown (lambda (x y) x)) _enum-exn?)) +(test 5 cast 'foo (_enum '(foo = 5)) _int) +(test -5 cast 'bar (_enum '(bar = -5)) _int) + (define-cstruct _ic7i ([i1 _int] [c7 _c7_list] [i2 _int])) diff --git a/racket/collects/ffi/unsafe.rkt b/racket/collects/ffi/unsafe.rkt index 7f46980e37..b07905c32a 100644 --- a/racket/collects/ffi/unsafe.rkt +++ b/racket/collects/ffi/unsafe.rkt @@ -820,7 +820,7 @@ "symbols" symbols "key" sym "value" i)) - (unless (exact-nonnegative-integer? i) + (unless (exact-integer? i) (raise-arguments-error '_enum "value is not an integer" "symbols" symbols "key" sym