@@ -1261,6 +1261,24 @@ class ReplaceSymbolicVisitor : public PassUtils::PassVisitor<ReplaceSymbolicVisi
1261
1261
sym, sym, call_args.p , call_args.n , ASRUtils::TYPE (ASR::make_Logical_t (al, x.base .base .loc , 4 )), nullptr , nullptr ));
1262
1262
print_tmp.push_back (function_call);
1263
1263
}
1264
+ } else if (ASR::is_a<ASR::ListItem_t>(*val)) {
1265
+ ASR::ListItem_t* list_item = ASR::down_cast<ASR::ListItem_t>(val);
1266
+ if (list_item->m_type ->type == ASR::ttypeType::SymbolicExpression) {
1267
+ ASR::ttype_t *CPtr_type = ASRUtils::TYPE (ASR::make_CPtr_t (al, x.base .base .loc ));
1268
+ ASR::symbol_t * basic_str_sym = declare_basic_str_function (al, x.base .base .loc , module_scope);
1269
+
1270
+ Vec<ASR::call_arg_t > call_args;
1271
+ call_args.reserve (al, 1 );
1272
+ ASR::call_arg_t call_arg;
1273
+ call_arg.loc = x.base .base .loc ;
1274
+ call_arg.m_value = ASRUtils::EXPR (ASR::make_ListItem_t (al, x.base .base .loc , list_item->m_a ,
1275
+ list_item->m_pos , CPtr_type, nullptr ));
1276
+ call_args.push_back (al, call_arg);
1277
+ ASR::expr_t * function_call = ASRUtils::EXPR (ASRUtils::make_FunctionCall_t_util (al, x.base .base .loc ,
1278
+ basic_str_sym, basic_str_sym, call_args.p , call_args.n ,
1279
+ ASRUtils::TYPE (ASR::make_Character_t (al, x.base .base .loc , 1 , -2 , nullptr )), nullptr , nullptr ));
1280
+ print_tmp.push_back (function_call);
1281
+ }
1264
1282
} else {
1265
1283
print_tmp.push_back (x.m_values [i]);
1266
1284
}
0 commit comments