summaryrefslogtreecommitdiff
path: root/src/module.cc
diff options
context:
space:
mode:
authorMarius Kintel <marius@kintel.net>2013-04-19 01:42:33 (GMT)
committerMarius Kintel <marius@kintel.net>2013-04-26 21:42:32 (GMT)
commit64ed1eb9fe00e287d84b18830df86cc0de6b122a (patch)
tree3b5f4a51209b62a14d28abc7c0e01fc5753e162c /src/module.cc
parenta96f3f3c67d496279151cd3fff47589b8684c378 (diff)
Experiment: Lazy evaluation of argument lists in evaluation context. Allows e.g. for loop variables to be dependent on each other
Diffstat (limited to 'src/module.cc')
-rw-r--r--src/module.cc9
1 files changed, 1 insertions, 8 deletions
diff --git a/src/module.cc b/src/module.cc
index 7d83975..3f6dd22 100644
--- a/src/module.cc
+++ b/src/module.cc
@@ -112,14 +112,7 @@ std::string ModuleInstantiation::dump(const std::string &indent) const
AbstractNode *ModuleInstantiation::evaluate_instance(const Context *ctx) const
{
- EvalContext c(ctx);
- BOOST_FOREACH(const Assignment &arg, this->arguments) {
- c.eval_arguments.push_back(std::make_pair(arg.first,
- arg.second ?
- arg.second->evaluate(ctx) :
- Value()));
- }
- c.children = this->children;
+ EvalContext c(ctx, this->arguments, &this->children);
#if 0 && DEBUG
PRINT("New eval ctx:");
contact: Jan Huwald // Impressum