diff --git a/pkgs/racket-test/tests/racket/optimize.rktl b/pkgs/racket-test/tests/racket/optimize.rktl index 4f69af851e..44b841a5db 100644 --- a/pkgs/racket-test/tests/racket/optimize.rktl +++ b/pkgs/racket-test/tests/racket/optimize.rktl @@ -2271,6 +2271,7 @@ (test-pred 'impersonator?) (test-pred 'procedure?) (test-pred 'eof-object?) + (test-pred 'immutable?) (test-pred 'not)) (let ([test-bin diff --git a/racket/src/racket/src/list.c b/racket/src/racket/src/list.c index 4018d18b62..db85b1f354 100644 --- a/racket/src/racket/src/list.c +++ b/racket/src/racket/src/list.c @@ -272,11 +272,9 @@ scheme_init_list (Scheme_Env *env) | SCHEME_PRIM_IS_OMITABLE); scheme_add_global_constant ("list*", p, env); - scheme_add_global_constant("immutable?", - scheme_make_folding_prim(immutablep, - "immutable?", - 1, 1, 1), - env); + p = scheme_make_folding_prim(immutablep, "immutable?", 1, 1, 1); + SCHEME_PRIM_PROC_FLAGS(p) |= scheme_intern_prim_opt_flags(SCHEME_PRIM_IS_OMITABLE); + scheme_add_global_constant("immutable?", p, env); p = scheme_make_immed_prim(length_prim, "length", 1, 1); SCHEME_PRIM_PROC_FLAGS(p) |= scheme_intern_prim_opt_flags(SCHEME_PRIM_IS_UNARY_INLINED);