From b7662ecc76d51f20755839a924d305f3942bc532 Mon Sep 17 00:00:00 2001 From: Dustin Spicuzza Date: Fri, 7 Aug 2026 02:21:21 +0000 Subject: [PATCH] Fix ignored overload missing warning - Fixes #324 --- src/semiwrap/autowrap/generator_data.py | 2 +- tests/test_generator_data.py | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 tests/test_generator_data.py diff --git a/src/semiwrap/autowrap/generator_data.py b/src/semiwrap/autowrap/generator_data.py index 41a9564..1edab19 100644 --- a/src/semiwrap/autowrap/generator_data.py +++ b/src/semiwrap/autowrap/generator_data.py @@ -151,7 +151,7 @@ def get_function_data( data = self._default_fn_data report_data.deferred_signatures.append((fn, is_private)) elif not data.overloads: - report_data.deferred_signatures.append((fn, is_private)) + report_data.deferred_signatures.append((fn, is_private or data.ignore)) else: # When there is overload data present, we have to actually compute # the signature of every function diff --git a/tests/test_generator_data.py b/tests/test_generator_data.py new file mode 100644 index 0000000..b0d8ab6 --- /dev/null +++ b/tests/test_generator_data.py @@ -0,0 +1,25 @@ +from cxxheaderparser.options import ParserOptions + +from semiwrap.autowrap.cxxparser import parse_header +from semiwrap.autowrap.generator_data import GeneratorData +from semiwrap.config.autowrap_yml import AutowrapConfigYaml, FunctionData + + +def test_ignored_overloaded_function_is_not_reported_missing(tmp_path): + header = tmp_path / "x.h" + header.write_text("int add(int x);\nint add(int x, int y);\n") + config = AutowrapConfigYaml(functions={"add": FunctionData(ignore=True)}) + gendata = GeneratorData(config, tmp_path / "x.yml") + + hctx = parse_header( + "x", + header, + tmp_path, + gendata, + ParserOptions(), + {}, + False, + ) + + assert hctx.functions == [] + assert gendata.get_missing() == {}