1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-09 21:40:33 +02:00

fix "lexical vars are collectable" test

* test-suite/tests/gc.test ("gc"): Fix "lexical vars are collectable"
  test.  (Previously, the binding was getting inlined, so we weren't
  testing what we meant to test.  Besides that, the value was a
  constant, not a closure, so it wasn't collectable in the first place!)
This commit is contained in:
Andy Wingo 2012-01-25 19:03:29 +01:00
parent e5cf97290c
commit a2b62b48ab

View file

@ -1,6 +1,6 @@
;;;; gc.test --- test guile's garbage collection -*- scheme -*-
;;;; Copyright (C) 2000, 2001, 2004, 2006, 2007, 2008, 2009,
;;;; 2011 Free Software Foundation, Inc.
;;;; 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
@ -87,11 +87,14 @@
total)))
(pass-if "Lexical vars are collectable"
(procedure?
(list?
(compile
'(begin
(define guardian (make-guardian))
(let ((f (lambda () (display "test\n"))))
(let ((f (list 'foo)))
;; Introduce a useless second reference to f to prevent the
;; optimizer from propagating the lexical binding.
f
(guardian f))
(gc)(gc)(gc)
(guardian))))))