~ chicken-core (chicken-5) /tests/inlining-tests.scm
Trap1;;;; inlining-tests.scm - test inlining234;;; SVN rev. 15495: local assignment did not mark lexical as "captured"56(define (foo n)7 (let ((r #f))8 (for-each9 (lambda (m)10 (case m11 ((abc) (set! r #t))12 ((def) (set! r 'ok))13 ((xyz) (set! r 'yo))))14 n)15 r))1617(assert (eq? #t (foo '(abc))))181920;;; SVN rev. 15511: multiple assignments didn't make global variable unknown for local inlining2122(define (bar)23 (set! foo (lambda () 1)))2425(define (foo) 0)26(bar)27(assert (= 1 (foo)))2829(import inline-me)30(assert (= 42 (foreign-foo 41)))3132;; #1665, don't replace calls to inlinable procedures with direct33;; calls when those procedures are external (via an inline file).34(module test-166535 ()3637 (import scheme inline-me)3839 (define (inline-external-with-unroll-limit-test x)40 (lambda (x)41 (lambda (a)42 (if a43 (external-foo x 'xxx)44 (if x45 (external-foo x 'yyy)46 (external-foo x 'zzz)))47 1)))4849 (inline-external-with-unroll-limit-test 'yo)50 (inline-external-with-unroll-limit-test 'yo2))