@@ -63,6 +63,9 @@ def extract_method_fname(node: demangler.Node) -> tuple[demangler.Node, ...]:
return _extract(node.value)
case node if node.kind == "qual_name":
return (node.value[-1],)
+ case node if node.kind == "name":
+ # this appears to be a static function
+ return (node,)
raise ValueError(f"Unexpected node {node!r}")
if node.kind == "func":
@@ -137,6 +137,14 @@ def test_function_match_signature(fnsym_a: str, fnsym_b: str, expected: bool):
),
True,
+ (
+ # FAIL: static function and class method
+ "_Z19ReloadSceneFromDiskP11CBaseEntity",
+ "_ZN18CServerChoreoTools19ReloadSceneFromDiskEi",
+ ),
+ False,
],
)
def test_function_overloaded(fnsyms: Iterable[str], expected: bool):