From 99dc3e613a2ce30474fff92151abf165d017c26d Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 26 Aug 2008 14:05:59 +0000 Subject: [PATCH] * Require that __overrides is defined as a non-recursive attribute (which means it can only be defined via "inherit"), otherwise we get scoping bugs, since __overrides can't be recursive (or at least, it would be hard). --- src/libexpr/eval.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc index ef1408b50..01d33ad00 100644 --- a/src/libexpr/eval.cc +++ b/src/libexpr/eval.cc @@ -181,11 +181,11 @@ LocalNoInline(ATerm expandRec(EvalState & state, ATerm e, ATermList rbnds, ATerm ATermMap subs(ATgetLength(rbnds) + ATgetLength(nrbnds)); for (ATermIterator i(rbnds); i; ++i) { if (!matchBind(*i, name, e2, pos)) abort(); /* can't happen */ - if (name == sOverrides) eOverrides = e2; subs.set(name, makeSelect(e, name)); } for (ATermIterator i(nrbnds); i; ++i) { if (!matchBind(*i, name, e2, pos)) abort(); /* can't happen */ + if (name == sOverrides) eOverrides = e2; subs.set(name, e2); }