* eval.c (scm_m_letstar): Removed check for duplicate bindings.
authorMikael Djurfeldt <djurfeldt@nada.kth.se>
Mon, 5 Mar 2001 18:54:55 +0000 (18:54 +0000)
committerMikael Djurfeldt <djurfeldt@nada.kth.se>
Mon, 5 Mar 2001 18:54:55 +0000 (18:54 +0000)
Duplicate bindings are OK in a let* since a let* is semantically
equivalent to a nested set of let:s.

libguile/ChangeLog
libguile/eval.c

index bd8b614..2978ce2 100644 (file)
@@ -1,3 +1,9 @@
+2001-03-05  Mikael Djurfeldt  <mdj@linnaeus.mit.edu>
+
+       * eval.c (scm_m_letstar): Removed check for duplicate bindings.
+       Duplicate bindings are OK in a let* since a let* is semantically
+       equivalent to a nested set of let:s.
+
 2001-03-05  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>
 
        * print.c (scm_print_options): Fixed texinfo in docstring.
index 90ba997..93a4a16 100644 (file)
@@ -712,8 +712,6 @@ scm_m_letstar (SCM xorig, SCM env)
       arg1 = SCM_CAR (proc);
       SCM_ASSYNT (2 == scm_ilength (arg1), xorig, scm_s_bindings, s_letstar);
       SCM_ASSYNT (SCM_SYMBOLP (SCM_CAR (arg1)), xorig, scm_s_variable, s_letstar);
-      if (scm_c_improper_memq (SCM_CAR (arg1), vars))
-       scm_misc_error (s_letstar, scm_s_duplicate_bindings, SCM_EOL);
       *varloc = scm_cons2 (SCM_CAR (arg1), SCM_CAR (SCM_CDR (arg1)), SCM_EOL);
       varloc = SCM_CDRLOC (SCM_CDR (*varloc));
       proc = SCM_CDR (proc);