From 56140608ef546ca3f22261e80d0771bc91d9e325 Mon Sep 17 00:00:00 2001 From: Jason Turner Date: Thu, 30 Nov 2017 10:06:32 -0700 Subject: [PATCH] Fix scope optimizations for ranged for and refs Closes #383 --- include/chaiscript/language/chaiscript_optimizer.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/chaiscript/language/chaiscript_optimizer.hpp b/include/chaiscript/language/chaiscript_optimizer.hpp index c1edb73a..a8118fba 100644 --- a/include/chaiscript/language/chaiscript_optimizer.hpp +++ b/include/chaiscript/language/chaiscript_optimizer.hpp @@ -97,7 +97,7 @@ namespace chaiscript { template bool contains_var_decl_in_scope(const eval::AST_Node_Impl &node) { - if (node.identifier == AST_Node_Type::Var_Decl || node.identifier == AST_Node_Type::Assign_Decl) { + if (node.identifier == AST_Node_Type::Var_Decl || node.identifier == AST_Node_Type::Assign_Decl || node.identifier == AST_Node_Type::Reference) { return true; } @@ -107,6 +107,7 @@ namespace chaiscript { const auto &child = child_at(node, i); if (child.identifier != AST_Node_Type::Block && child.identifier != AST_Node_Type::For + && child.identifier != AST_Node_Type::Ranged_For && contains_var_decl_in_scope(child)) { return true; }