From 78e295115acc22b3aeb4fba305862fb794baa195 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebastien@dynare.org>
Date: Wed, 6 Oct 2021 16:33:31 +0200
Subject: [PATCH] PAC: better error message in case of name conflict for the
 growth neutrality correction parameter

---
 src/DynamicModel.cc | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/DynamicModel.cc b/src/DynamicModel.cc
index 78e102e3..fb84ffcb 100644
--- a/src/DynamicModel.cc
+++ b/src/DynamicModel.cc
@@ -4198,9 +4198,17 @@ DynamicModel::addPacModelConsistentExpectationEquation(const string &name, int d
 void
 DynamicModel::createPacGrowthNeutralityParameter(const string &pac_model_name)
 {
-  int param_idx = symbol_table.addSymbol(pac_model_name +"_pac_growth_neutrality_correction",
-                                         SymbolType::parameter);
-  pac_growth_neutrality_params[pac_model_name] = param_idx;
+  string param_name = pac_model_name + "_pac_growth_neutrality_correction";
+  try
+    {
+      int param_idx = symbol_table.addSymbol(param_name, SymbolType::parameter);
+      pac_growth_neutrality_params[pac_model_name] = param_idx;
+    }
+  catch (SymbolTable::AlreadyDeclaredException)
+    {
+      cerr << "The parameter '" << param_name << "' conflicts with the auxiliary parameter that will be generated for the growth neutrality correction of the '" << pac_model_name << "' PAC model. Please rename that parameter." << endl;
+      exit(EXIT_FAILURE);
+    }
 }
 
 void
-- 
GitLab