Repository navigation
Expose function metadata through reflected records - #60
Merged
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.