MCPcopy Create free account
hub / github.com/colbymchenry/codegraph / recover_mangled_cpp_name

Function recover_mangled_cpp_name

codegraph-kernel/src/ccpp/mod.rs:216–240  ·  view source on GitHub ↗

recoverMangledCppName (languages/c-cpp.ts) — universal post-hoc salvage for a name still mangled by an unblanked macro ("Ret name" → "name").

(name: String)

Source from the content-addressed store, hash-verified

214/// recoverMangledCppName (languages/c-cpp.ts) — universal post-hoc salvage for
215/// a name still mangled by an unblanked macro ("Ret name""name").
216fn recover_mangled_cpp_name(name: String) -> String {
217 if !name.chars().any(|c| c.is_whitespace())
218 || name.starts_with("operator")
219 || name.starts_with('~')
220 {
221 return name;
222 }
223 if ret_paren_name_re().is_match(&name) {
224 return name; // `Ret (name)` idiom — leave alone
225 }
226 let before_params = match name.find('(') {
227 Some(i) => &name[..i],
228 None => &name[..],
229 };
230 // (JS: `beforeParams.trim().split(/\s+/)` — split_whitespace already
231 // ignores leading/trailing whitespace, so no explicit trim.)
232 let candidate = before_params.split_whitespace().last().unwrap_or("");
233 if candidate.is_empty()
234 || !simple_ident_re().is_match(candidate)
235 || is_cpp_primitive_name(candidate)
236 {
237 return name;
238 }
239 candidate.to_string()
240}
241
242/// normalizeCppReturnType (languages/c-cpp.ts).
243fn normalize_cpp_return_type(raw: &str) -> Option<String> {

Callers 1

extract_nameMethod · 0.85

Calls 3

ret_paren_name_reFunction · 0.85
is_cpp_primitive_nameFunction · 0.85
simple_ident_reFunction · 0.70

Tested by

no test coverage detected