diff --git a/libguile/procprop.c b/libguile/procprop.c index 8e2cd6a5f..428d63f91 100644 --- a/libguile/procprop.c +++ b/libguile/procprop.c @@ -1,5 +1,6 @@ -/* Copyright (C) 1995,1996,1998,2000,2001,2003,2004, 2006, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. - * +/* Copyright (C) 1995, 1996, 1998, 2000, 2001, 2003, 2004, 2006, + * 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. + * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License * as published by the Free Software Foundation; either version 3 of @@ -175,7 +176,7 @@ SCM_DEFINE (scm_set_procedure_properties_x, "set-procedure-properties!", 2, 0, 0 SCM_VALIDATE_PROC (1, proc); #if (SCM_ENABLE_DEPRECATED == 1) - if (scm_assq (alist, scm_sym_arity)) + if (scm_is_true (scm_assq (scm_sym_arity, alist))) SCM_MISC_ERROR ("arity is a read-only property", SCM_EOL); #endif diff --git a/test-suite/tests/procprop.test b/test-suite/tests/procprop.test index 25dd4c293..ceb6e562b 100644 --- a/test-suite/tests/procprop.test +++ b/test-suite/tests/procprop.test @@ -1,7 +1,7 @@ ;;;; procprop.test --- Procedure properties -*- mode: scheme; coding: utf-8; -*- ;;;; Ludovic Courtès ;;;; -;;;; Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc. +;;;; Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation, Inc. ;;;; ;;;; This library is free software; you can redistribute it and/or ;;;; modify it under the terms of the GNU Lesser General Public @@ -72,4 +72,10 @@ (pass-if "opt, eval" (equal? (procedure-minimum-arity (eval '(lambda* (a b #:optional c) #t) (current-module))) - '(2 1 #f)))) + '(2 1 #f))) + + (if (include-deprecated-features) + (pass-if-exception "set-procedure-properties! arity" + '(misc-error . "arity is a read-only property") + (set-procedure-properties! (lambda x x) '((arity . 3)))) + #t))