From 7ad6b0a5a2936cb7b63314d4b24e8b87f9d34315 Mon Sep 17 00:00:00 2001 From: Ludovic Court`es Date: Wed, 15 Jun 2005 13:47:21 +0000 Subject: Fix the resolution mechanism so that there can be dependencies among `unresolved' objects. * src/bigloo/resolve.scm (do-resolve! node::%unresolved): Don't recurse after calling `proc'. (do-resolve! node::%container): Resolve its body even if its parent is not unspecified (see message <20050120091114.GB337@laas.fr>, dated Jan. 20th, 2005, to the Skribe mailing list). git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-2 --- src/bigloo/resolve.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/bigloo/resolve.scm b/src/bigloo/resolve.scm index 7507560..8248a4f 100644 --- a/src/bigloo/resolve.scm +++ b/src/bigloo/resolve.scm @@ -99,7 +99,9 @@ (debug-item "env0=" env0) (debug-item "env=" env) (if (not (eq? parent #unspecified)) - node + (let ((e `((parent ,node) ,@env ,@env0))) + (set! body (do-resolve! body engine e)) + node) (let ((p (assq 'parent env0))) (set! parent (and (pair? p) (pair? (cdr p)) (cadr p))) (if (pair? options) @@ -142,7 +144,7 @@ (with-access::%unresolved node (proc parent loc) (let ((p (assq 'parent env))) (set! parent (and (pair? p) (pair? (cdr p)) (cadr p)))) - (let ((res (resolve! (proc node engine env) engine env))) + (let ((res (proc node engine env))) (if (ast? res) (%ast-loc-set! res loc)) (debug-item "res=" res) (set! *unresolved* #t) -- cgit v1.2.3