~ chicken-core (chicken-5) e8299500965217a6b4f2a2711656034f0e57e9dd


commit e8299500965217a6b4f2a2711656034f0e57e9dd
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Sat Sep 5 21:06:55 2026 +0200
Commit:     Felix Winkelmann <felix.winkelmann@bevuta.com>
CommitDate: Sat Sep 12 19:31:44 2026 +0200

    fix redundant node-traversals in lfa2 pass
    
    This merged result types in conditionals incorrectly and could even
    cause the lfa2 pass to loop endlessly in certain code. Stupid little
    paren error.

diff --git a/lfa2.scm b/lfa2.scm
index 11555c1b..53d691f1 100644
--- a/lfa2.scm
+++ b/lfa2.scm
@@ -379,9 +379,9 @@
                               ae)
                         (walk (third subs)
                               (append (third tr) te)
-                              ae)))
+                              ae))
                  (merge (walk (second subs) te ae)
-                        (walk (third subs) te ae))))
+                        (walk (third subs) te ae)))))
 	  ((quote) (constant-result (first params)))
 	  ((let)
 	   (let* ((val (first subs))
Trap