* Extract the name from a node based on language
(node: SyntaxNode, source: string, extractor: LanguageExtractor)
| 63 | * Extract the name from a node based on language |
| 64 | */ |
| 65 | function extractName(node: SyntaxNode, source: string, extractor: LanguageExtractor): string { |
| 66 | const name = extractNameRaw(node, source, extractor); |
| 67 | // Universal fallback: recover a real identifier from a name still mangled by a |
| 68 | // macro the pre-parse didn't blank (C/C++ only — see recoverMangledName). A |
| 69 | // no-op on well-formed names, so a clean name is never altered. |
| 70 | return extractor.recoverMangledName ? extractor.recoverMangledName(name) : name; |
| 71 | } |
| 72 | |
| 73 | function extractNameRaw(node: SyntaxNode, source: string, extractor: LanguageExtractor): string { |
| 74 | const hookName = extractor.resolveName?.(node, source); |
no test coverage detected