From 58ef3fdaa8c79a50680faef42b192dd1428eaf42 Mon Sep 17 00:00:00 2001 From: Gustavo Massaccesi Date: Fri, 5 Dec 2014 16:23:52 -0300 Subject: [PATCH] Mark immutable? as omitable --- pkgs/racket-test/tests/racket/optimize.rktl | 1 + racket/src/racket/src/list.c | 8 +++----- 2 files changed, 4 insertions(+), 5 deletions(-) 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);