@@ -194,36 +194,59 @@ static void show_symbol_table_json_ui(
194194 if (symbol.value .is_not_nil ())
195195 ptr->from_expr (symbol.value , value_str, ns);
196196
197+ json_stringt pretty_name_json (symbol.pretty_name );
198+ json_stringt name_json (symbol.name );
199+ json_stringt base_name_json (symbol.base_name );
200+ json_stringt mode_json (symbol.mode );
201+ json_stringt module_json (symbol.module );
202+ json_stringt pretty_type_json (type_str);
203+ json_stringt pretty_value_json (value_str);
204+ jsont type_json (irep_converter.convert_from_irep (symbol.type ));
205+ jsont value_json (irep_converter.convert_from_irep (symbol.value ));
206+ jsont location_json (irep_converter.convert_from_irep (symbol.location ));
207+ jsont is_type_json (jsont::json_boolean (symbol.is_type ));
208+ jsont is_macro_json (jsont::json_boolean (symbol.is_macro ));
209+ jsont is_exported_json (jsont::json_boolean (symbol.is_exported ));
210+ jsont is_input_json (jsont::json_boolean (symbol.is_input ));
211+ jsont is_output_json (jsont::json_boolean (symbol.is_output ));
212+ jsont is_state_var_json (jsont::json_boolean (symbol.is_state_var ));
213+ jsont is_property_json (jsont::json_boolean (symbol.is_property ));
214+ jsont is_static_lifetime_json (jsont::json_boolean (symbol.is_static_lifetime ));
215+ jsont is_thread_local_json (jsont::json_boolean (symbol.is_thread_local ));
216+ jsont is_lvalue_json (jsont::json_boolean (symbol.is_lvalue ));
217+ jsont is_file_local_json (jsont::json_boolean (symbol.is_file_local ));
218+ jsont is_extern_json (jsont::json_boolean (symbol.is_extern ));
219+ jsont is_volatile_json (jsont::json_boolean (symbol.is_volatile ));
220+ jsont is_parameter_json (jsont::json_boolean (symbol.is_parameter ));
221+ jsont is_auxiliary_json (jsont::json_boolean (symbol.is_auxiliary ));
222+ jsont is_weak_json (jsont::json_boolean (symbol.is_weak ));
197223 json_objectt symbol_json (
198- {{" prettyName" , json_stringt (symbol.pretty_name )},
199- {" name" , json_stringt (symbol.name )},
200- {" baseName" , json_stringt (symbol.base_name )},
201- {" mode" , json_stringt (symbol.mode )},
202- {" module" , json_stringt (symbol.module )},
203-
204- {" prettyType" , json_stringt (type_str)},
205- {" prettyValue" , json_stringt (value_str)},
206-
207- {" type" , irep_converter.convert_from_irep (symbol.type )},
208- {" value" , irep_converter.convert_from_irep (symbol.value )},
209- {" location" , irep_converter.convert_from_irep (symbol.location )},
210-
211- {" isType" , jsont::json_boolean (symbol.is_type )},
212- {" isMacro" , jsont::json_boolean (symbol.is_macro )},
213- {" isExported" , jsont::json_boolean (symbol.is_exported )},
214- {" isInput" , jsont::json_boolean (symbol.is_input )},
215- {" isOutput" , jsont::json_boolean (symbol.is_output )},
216- {" isStateVar" , jsont::json_boolean (symbol.is_state_var )},
217- {" isProperty" , jsont::json_boolean (symbol.is_property )},
218- {" isStaticLifetime" , jsont::json_boolean (symbol.is_static_lifetime )},
219- {" isThreadLocal" , jsont::json_boolean (symbol.is_thread_local )},
220- {" isLvalue" , jsont::json_boolean (symbol.is_lvalue )},
221- {" isFileLocal" , jsont::json_boolean (symbol.is_file_local )},
222- {" isExtern" , jsont::json_boolean (symbol.is_extern )},
223- {" isVolatile" , jsont::json_boolean (symbol.is_volatile )},
224- {" isParameter" , jsont::json_boolean (symbol.is_parameter )},
225- {" isAuxiliary" , jsont::json_boolean (symbol.is_auxiliary )},
226- {" isWeak" , jsont::json_boolean (symbol.is_weak )}});
224+ {{" prettyName" , std::move (pretty_name_json)},
225+ {" name" , std::move (name_json)},
226+ {" baseName" , std::move (base_name_json)},
227+ {" mode" , std::move (mode_json)},
228+ {" module" , std::move (module_json)},
229+ {" prettyType" , std::move (pretty_type_json)},
230+ {" prettyValue" , std::move (pretty_value_json)},
231+ {" type" , std::move (type_json)},
232+ {" value" , std::move (value_json)},
233+ {" location" , std::move (location_json)},
234+ {" isType" , std::move (is_type_json)},
235+ {" isMacro" , std::move (is_macro_json)},
236+ {" isExported" , std::move (is_exported_json)},
237+ {" isInput" , std::move (is_input_json)},
238+ {" isOutput" , std::move (is_output_json)},
239+ {" isStateVar" , std::move (is_state_var_json)},
240+ {" isProperty" , std::move (is_property_json)},
241+ {" isStaticLifetime" , std::move (is_static_lifetime_json)},
242+ {" isThreadLocal" , std::move (is_thread_local_json)},
243+ {" isLvalue" , std::move (is_lvalue_json)},
244+ {" isFileLocal" , std::move (is_file_local_json)},
245+ {" isExtern" , std::move (is_extern_json)},
246+ {" isVolatile" , std::move (is_volatile_json)},
247+ {" isParameter" , std::move (is_parameter_json)},
248+ {" isAuxiliary" , std::move (is_auxiliary_json)},
249+ {" isWeak" , std::move (is_weak_json)}});
227250
228251 result.push_back (id2string (symbol.name ), std::move (symbol_json));
229252 }
@@ -265,15 +288,19 @@ static void show_symbol_table_brief_json_ui(
265288 if (symbol.type .is_not_nil ())
266289 ptr->from_type (symbol.type , type_str, ns);
267290
291+ json_stringt pretty_name_json (symbol.pretty_name );
292+ json_stringt base_name_json (symbol.base_name );
293+ json_stringt mode_json (symbol.mode );
294+ json_stringt module_json (symbol.module );
295+ json_stringt pretty_type_json (type_str);
296+ jsont type_json (irep_converter.convert_from_irep (symbol.type ));
268297 json_objectt symbol_json (
269- {{" prettyName" , json_stringt (symbol.pretty_name )},
270- {" baseName" , json_stringt (symbol.base_name )},
271- {" mode" , json_stringt (symbol.mode )},
272- {" module" , json_stringt (symbol.module )},
273-
274- {" prettyType" , json_stringt (type_str)},
275-
276- {" type" , irep_converter.convert_from_irep (symbol.type )}});
298+ {{" prettyName" , std::move (pretty_name_json)},
299+ {" baseName" , std::move (base_name_json)},
300+ {" mode" , std::move (mode_json)},
301+ {" module" , std::move (module_json)},
302+ {" prettyType" , std::move (pretty_type_json)},
303+ {" type" , std::move (type_json)}});
277304
278305 result.push_back (id2string (symbol.name ), std::move (symbol_json));
279306 }
0 commit comments