@@ -202,6 +202,21 @@ void SymbolTable::move_symbols_from_global_scope(Allocator &al,
202
202
mod_dependencies.push_back (al, es->m_module_name );
203
203
}
204
204
es->m_parent_symtab = module_scope;
205
+ ASR::symbol_t *s = ASRUtils::symbol_get_past_external (a.second );
206
+ LCOMPILERS_ASSERT (s);
207
+ if (ASR::is_a<ASR::Variable_t>(*s)) {
208
+ ASR::Variable_t *v = ASR::down_cast<ASR::Variable_t>(s);
209
+ if (v->m_symbolic_value && !ASR::is_a<ASR::Const_t>(*v->m_type )
210
+ && ASR::is_a<ASR::List_t>(*v->m_type )) {
211
+ ASR::expr_t * target = ASRUtils::EXPR (ASR::make_Var_t (
212
+ al, v->base .base .loc , (ASR::symbol_t *) es));
213
+ ASR::expr_t *value = v->m_symbolic_value ;
214
+
215
+ ASR::asr_t * assign = ASR::make_Assignment_t (al,
216
+ v->base .base .loc , target, value, nullptr );
217
+ var_init.push_back (al, ASRUtils::STMT (assign));
218
+ }
219
+ }
205
220
module_scope->add_symbol (a.first , (ASR::symbol_t *) es);
206
221
syms.push_back (al, s2c (al, a.first ));
207
222
break ;
@@ -250,7 +265,7 @@ void SymbolTable::move_symbols_from_global_scope(Allocator &al,
250
265
} default : {
251
266
throw LCompilersException (" Moving the symbol:`" + a.first +
252
267
" ` from global scope is not implemented yet" );
253
- };
268
+ }
254
269
}
255
270
}
256
271
}
0 commit comments