bugfix - unify helper and generic method default planning (#729, #731)#732
Merged
Merged
Conversation
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.
Summary
This PR stacks the #729 vocab helper call-planning fix on top of the merged #727 work and fixes #731 by making instantiated generic receiver methods inherit source default arguments before Rust emission. Vocab desugarer helper calls now use the same public dependency call-planning path as ordinary
pub::librarycalls, including default materialization, dependency-owned provider paths, union wrapping, and owned-string conversion.Type of change
docs/RFCs/*)Area(s)
Select the primary areas touched (used for review routing; labels are managed separately):
Key details
left.join(right)on instantiated generic classes/models now emit the default trailing argument instead of invalid Rust..incnlibmetadata; module-qualified public helper calls resolve through the same manifest signature path as direct imports; method-call emission specializes Incan-owned receiver signatures through the concrete generic receiver before inheriting defaults.Testing / verification
make test/cargo testmake examples(if relevant)incan fmt --check .(if relevant)Manual verification notes:
make pre-commitpassed on the stacked bug - vocab helper calls skip normal call planning for defaults and argument coercions #729/bug - Generic class method calls do not fill default arguments #731 branch: 2,546 Rust tests passed, clippy passed, cargo-deny passed, smoke-test-fast passed, examples passed, and benchmark build checks passed.origin/release/v0.3passed:cargo test --locked --test integration_tests issue729,cargo test --locked --test codegen_snapshot_tests test_issue731_generic_method_defaults_codegen, andgit diff --check origin/release/v0.3...HEAD.CARGO_NET_OFFLINE=true target/debug/incan build /private/tmp/incan-731-repro/repro.incn.Docs impact
If docs updated:
workspaces/docs-site/docs/release_notes/0_3.mdChecklist
Closes #729
Closes #731