diff options
author | Ludovic Court`es | 2005-06-15 13:47:21 +0000 |
---|---|---|
committer | Ludovic Court`es | 2005-06-15 13:47:21 +0000 |
commit | 7ad6b0a5a2936cb7b63314d4b24e8b87f9d34315 (patch) | |
tree | f29bf740294f8fbe20406dbe65a88ca0abfad2a9 | |
parent | d75461bc06e1cba0f29990a2604a4a86cd1c0679 (diff) | |
download | skribilo-7ad6b0a5a2936cb7b63314d4b24e8b87f9d34315.tar.gz skribilo-7ad6b0a5a2936cb7b63314d4b24e8b87f9d34315.tar.lz skribilo-7ad6b0a5a2936cb7b63314d4b24e8b87f9d34315.zip |
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
-rw-r--r-- | src/bigloo/resolve.scm | 6 |
1 files changed, 4 insertions, 2 deletions
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) |