~ chicken-core (chicken-5) e064b65fa84750797f11474339e880806f2a352a


commit e064b65fa84750797f11474339e880806f2a352a
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Tue Dec 31 11:19:21 2024 +0100
Commit:     Peter Bex <peter@more-magic.net>
CommitDate: Thu Jan 2 10:36:17 2025 +0100

    avoid looping in type-resolution during scrutiny
    
    reported by Peter McGoron
    
    Signed-off-by: Peter Bex <peter@more-magic.net>

diff --git a/manual/Acknowledgements b/manual/Acknowledgements
index 8e6ac12b..c5a36c68 100644
--- a/manual/Acknowledgements
+++ b/manual/Acknowledgements
@@ -31,7 +31,7 @@ David Krentzlin, Ben Kurtz, Sebastien Marie, Alice Maz, Michele La Monaca,
 Micky Latowicki, Kristian Lein-Mathisen, "LemonBoy", John Lenz,
 Kirill Lisovsky, Jürgen Lorenz, Kon Lovett, Lam Luu, Arthur Maciel,
 Vitaly Magerya, Leonardo Valeri Manera, Claude Marinier, Dennis Marti,
-Charles Martin, Bob McIsaac, "megane", Alain Mellan, Eric Merrit,
+Charles Martin, Peter McGoron, Bob McIsaac, "megane", Alain Mellan, Eric Merrit,
 Perry Metzger, Scott G. Miller, Mikael, Karel Miklav, Bruce Mitchener,
 Fadi Moukayed, Chris Moline, Eric E. Moore, Julian Morrison,
 Dan Muresan, David N. Murray, Timo Myyrä, "nicktick", Lars Nilsson,
diff --git a/scrutinizer.scm b/scrutinizer.scm
index 35f889e2..10f1e6bc 100644
--- a/scrutinizer.scm
+++ b/scrutinizer.scm
@@ -1573,6 +1573,7 @@
 	    (lambda (a)
 	      (let ((t2 (second a)))
 		(if (or (not t2)
+            (memq t done)
 			(memq t2 done))	; circular reference
 		    (if (third a)
 			(resolve (third a) (cons t done))
Trap