1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-17 17:20:29 +02:00

Raise an error for (begin) when `--disable-deprecated'.

* module/ice-9/psyntax.scm (define-expansion-constructors)[begin-form]:
  Emit a syntax-violation error for empty sequences when
  --disable-deprecated.

* test-suite/tests/syntax.test (pass-if-syntax-error): Fix typo in error
  message.
This commit is contained in:
Ludovic Courtès 2012-01-05 22:38:06 +01:00
parent 4dbd29a9b8
commit f78a1ccede
2 changed files with 14 additions and 9 deletions

View file

@ -1,6 +1,7 @@
;;;; -*-scheme-*-
;;;;
;;;; Copyright (C) 2001, 2003, 2006, 2009, 2010, 2011 Free Software Foundation, Inc.
;;;; Copyright (C) 2001, 2003, 2006, 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
@ -1206,10 +1207,13 @@
(syntax-case e ()
((_ e1 e2 ...) (expand-sequence #'(e1 e2 ...) r w s mod))
((_)
(begin
(issue-deprecation-warning
"Sequences of zero expressions are deprecated. Use *unspecified*.")
(expand-void)))))
(if (include-deprecated-features)
(begin
(issue-deprecation-warning
"Sequences of zero expressions are deprecated. Use *unspecified*.")
(expand-void))
(syntax-violation #f "sequence of zero expressions"
(source-wrap e w s mod))))))
((local-syntax-form)
(expand-local-syntax value e r w s mod expand-sequence))
((eval-when-form)

View file

@ -1,6 +1,7 @@
;;;; syntax.test --- test suite for Guile's syntactic forms -*- scheme -*-
;;;;
;;;; Copyright (C) 2001,2003,2004, 2005, 2006, 2009, 2010, 2011 Free Software Foundation, Inc.
;;;; Copyright (C) 2001, 2003, 2004, 2005, 2006, 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
@ -88,7 +89,7 @@
((_ name pat exp)
(pass-if name
(catch 'syntax-error
(lambda () exp (error "expected uri-error exception"))
(lambda () exp (error "expected syntax-error exception"))
(lambda (k who what where form . maybe-subform)
(if (if (pair? pat)
(and (eq? who (car pat))