Update of /var/lib/cvs/src/d2c/compiler/convert
In directory cantor:/tmp/cvs-serv8950/convert
Modified Files:
Tag: GD_2_5
lexenv.dylan
Log Message:
do not record self-references and already recorded ones.
Index: lexenv.dylan
===================================================================
RCS file: /var/lib/cvs/src/d2c/compiler/convert/lexenv.dylan,v
retrieving revision 1.3.4.5
retrieving revision 1.3.4.6
diff -u -d -r1.3.4.5 -r1.3.4.6
--- lexenv.dylan 5 Feb 2004 12:10:09 -0000 1.3.4.5
+++ lexenv.dylan 5 Feb 2004 12:45:43 -0000 1.3.4.6
@@ -191,12 +191,19 @@
add-binding(lexenv, name, var);
let variable-tlf = var.variable-tlf;
let lexenv-tlf = lexenv.lexenv-tlf;
- if (variable-tlf)
- compiler-warning("### tlf %= depends on %=", lexenv-tlf,
variable-tlf);
- lexenv-tlf.depends-on
- := make(<tlf-dependency>, source: variable-tlf, dependent:
lexenv-tlf,
- dependent-next: lexenv-tlf.depends-on, source-next:
variable-tlf.tlf-dependents);
- variable-tlf.tlf-dependents := lexenv-tlf.depends-on;
+ if (variable-tlf
+ & variable-tlf != lexenv-tlf)
+ block (return)
+ for (dep = lexenv-tlf.depends-on then dep.dependent-next, while:
dep)
+ dep.source-tlf == variable-tlf
+ & return();
+ end for;
+ compiler-warning("### tlf %= depends on %=", lexenv-tlf,
var.variable-name);
+ lexenv-tlf.depends-on
+ := make(<tlf-dependency>, source: variable-tlf, dependent:
lexenv-tlf,
+ dependent-next: lexenv-tlf.depends-on, source-next:
variable-tlf.tlf-dependents);
+ variable-tlf.tlf-dependents := lexenv-tlf.depends-on;
+ end block;
end;
search-my-bindings();
end if;
_______________________________________________
Gd-chatter mailing list
Gd-chatter@xxxxxxxxxxxxxxxx
http://www.gwydiondylan.org/mailman/listinfo/gd-chatter
|
|