Skip to content

Expose function metadata through reflected records - #60

Merged
sergio-eld merged 5 commits into
masterfrom
function-metadata
Sep 21, 2026
Merged

sergio-eld merged 5 commits into
masterfrom
function-metadata

Conversation

@sergio-eld

@sergio-eld sergio-eld commented Sep 20, 2026 •

Copy link
Copy Markdown
Owner

Generate function metadata alongside owning record fields and public methods. Expose documentation, parameters, return types, pointers, and arity while adding signature types to best-effort dependency discovery.

Keep generated field and method metadata in separate scopes, bind member methods through the existing reflected-record interface, and warn when overloaded methods are skipped. Cover C++11 and C++20 interfaces, out-of-scope diagnostics, and the documented C++23 example.

Keep RapidYAML's normal compiled dependency and package flow. Package the small c4core patch with an upstream-ready explanation, and apply it only when configuration finds C++20 support without std::span; older GCC, Clang, and MinGW consumers receive the fix while modern toolchains keep the upstream source unchanged.

Generate function metadata alongside owning record fields and public methods. Expose documentation, parameters, return types, pointers, and arity while adding signature types to best-effort dependency discovery.

Keep generated field and method metadata in separate scopes, bind member methods through the existing reflected-record interface, and warn when overloaded methods are skipped. Cover C++11 and C++20 interfaces, out-of-scope diagnostics, and the documented C++23 example.

Fetch RapidYAML as interface sources in the consumer's selected language mode, remove the c4core patch, and let the installed serialization component fetch missing dependencies directly.
Skip immediate and ambiguous member functions before generating pointers, including inherited and implicit assignment overloads. Keep the example portable across Apple Clang and initialize pre-C++17 function tags explicitly for MSVC.

Restore the RapidYAML integration from master and apply a packaged c4core patch that checks for <span> before enabling its C++20 adapter.
Load the packaged dependency setup before requesting the installed serialization component, restoring the master package-test flow.
Check <span> directly in c4core's existing adapter guards and retain an upstream-ready problem statement with the packaged patch.
Compile a scoped C++20 span check before fetching RapidYAML. Apply the packaged c4core patch only when the active toolchain supports C++20 but its standard library lacks span.
@sergio-eld
sergio-eld merged commit c083b13 into master Sep 21, 2026
38 checks passed
@sergio-eld
sergio-eld deleted the function-metadata branch September 21, 2026 07:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant