Skip to content

[WIP] Add conformance checks and tests to reflection implementation - #128

Draft
jbcoe with Copilot wants to merge 9 commits into
reflection-impl/supported-special-membersfrom
copilot/jbcoe-127-add-conformance-checks
Draft

[WIP] Add conformance checks and tests to reflection implementation#128
jbcoe with Copilot wants to merge 9 commits into
reflection-impl/supported-special-membersfrom
copilot/jbcoe-127-add-conformance-checks

Conversation

Copilot AI commented Aug 8, 2026

Copy link
Copy Markdown
Contributor
  • Inspect the generator, protocol template, and existing tests for special-member behavior
  • Add focused conformance coverage for supported special members in the protocol generator/tests
  • Run targeted verification for the updated tests and generator output
  • Run final review, security checks, and report the completed minimal change set

Co-authored-by: jbcoe <777363+jbcoe@users.noreply.github.com>
@jbcoe

jbcoe commented Aug 8, 2026

Copy link
Copy Markdown
Owner

@copilot address comments and fix failing tests.

pre-commit can be run locally with uv

…uses

Co-authored-by: jbcoe <777363+jbcoe@users.noreply.github.com>

Copilot AI commented Aug 8, 2026

Copy link
Copy Markdown
Contributor Author

@copilot address comments and fix failing tests.

pre-commit can be run locally with uv

Fixed in commit Fix clang-format: use conforms_to_v variable template in requires clauses. The pre-commit clang-format hook was reformatting requires conforms_to<T, Concrete>() by splitting the () call onto its own line. Replaced with a conforms_to_v<T, Concrete> variable template (no trailing ()) which formats correctly.

@jbcoe jbcoe left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot For the constructor, use U, not Concrete as the type name.

For tests, check constructability, do not use an internal check.

…ity tests

Co-authored-by: jbcoe <777363+jbcoe@users.noreply.github.com>

Copilot AI commented Aug 8, 2026

Copy link
Copy Markdown
Contributor Author

@copilot For the constructor, use U, not Concrete as the type name.

For tests, check constructability, do not use an internal check.

Done in commit Use U instead of Concrete in constructor templates; add constructability tests:

  • Renamed ConcreteU in the constructor templates for both protocol and protocol_view
  • Added ReflectionProtocolTest.IsConstructibleFromConformingType and ReflectionProtocolViewTest.IsConstructibleFromConformingType tests using std::is_constructible_v to check constructability from conforming/non-conforming types without relying on internal checks

…rix in cmake.yml

Co-authored-by: jbcoe <777363+jbcoe@users.noreply.github.com>
Co-authored-by: jbcoe <777363+jbcoe@users.noreply.github.com>
…996)

Co-authored-by: jbcoe <777363+jbcoe@users.noreply.github.com>
Co-authored-by: jbcoe <777363+jbcoe@users.noreply.github.com>
Co-authored-by: jbcoe <777363+jbcoe@users.noreply.github.com>
@jbcoe
jbcoe changed the base branch from main to reflection-impl/supported-special-members August 8, 2026 13:29
@jbcoe

jbcoe commented Aug 8, 2026

Copy link
Copy Markdown
Owner

@copilot rebase the branches for this PR so that it can be merged as a stack.

Copilot AI commented Aug 8, 2026

Copy link
Copy Markdown
Contributor Author

@copilot rebase the branches for this PR so that it can be merged as a stack.

The local rebase onto reflection-impl/supported-special-members is complete and all 67 tests pass. However, the push tool cannot force-push a rebased branch (it tries to reconcile with the remote's old pre-rebase history and hits conflicts). A manual git push --force-with-lease origin copilot/jbcoe-127-add-conformance-checks is needed to publish the rebased history.

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.

Add conformance checks and tests to the reflection implementation of protocol

2 participants