From 9e6bdc233460cc49b5333e502a0e0dfab9acf3dd Mon Sep 17 00:00:00 2001
From: Houtan Bastani <houtan@dynare.org>
Date: Tue, 28 Aug 2018 13:32:48 +0200
Subject: [PATCH] Revert "fix bug in collection of ec vars of pac equation"

This reverts commit 74dd6a69e94b1a7d2969e6a8135eb922a86d3769.
---
 src/ExprNode.cc | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/src/ExprNode.cc b/src/ExprNode.cc
index edbae186..8b7f5760 100644
--- a/src/ExprNode.cc
+++ b/src/ExprNode.cc
@@ -5096,10 +5096,18 @@ BinaryOpNode::getPacOptimizingPartHelper(const expr_t arg1, const expr_t arg2,
     {
       auto *testarg2 = dynamic_cast<BinaryOpNode *>(arg2);
       if (testarg2 != nullptr && testarg2->get_op_code() == BinaryOpcode::minus)
-        if (dynamic_cast<VariableNode *>(testarg2->get_arg1()) != nullptr
-            && dynamic_cast<VariableNode *>(testarg2->get_arg2()) != nullptr)
-          for (auto it : endogs)
-            ec_params_and_vars.emplace(*(params.begin()), it);
+        {
+          auto *test_arg1 = dynamic_cast<VariableNode *>(testarg2->get_arg1());
+          auto *test_arg2 = dynamic_cast<VariableNode *>(testarg2->get_arg2());
+          if (test_arg1 != nullptr && test_arg2 != nullptr)
+            {
+              test_arg1->collectDynamicVariables(SymbolType::endogenous, endogs);
+              ec_params_and_vars.emplace(*(params.begin()), *(endogs.begin()));
+              endogs.clear();
+              test_arg2->collectDynamicVariables(SymbolType::endogenous, endogs);
+              ec_params_and_vars.emplace(*(params.begin()), *(endogs.begin()));
+            }
+        }
     }
 }
 
-- 
GitLab