Infer implied outlives from fn signature - #412
Open
kirloo wants to merge 11 commits into
Open
Conversation
Collaborator
|
Thanks for contributing to formality! :) |
Contributor
Author
|
@nikomatsakis Now everything is in judgment functions |
tiif
reviewed
Jul 17, 2026
This comment has been minimized.
This comment has been minimized.
kirloo
force-pushed
the
fn_implied_bounds-clean
branch
from
July 22, 2026 07:22
f969552 to
1d6cbcb
Compare
Collaborator
|
This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
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.
What does this PR do?
Closes #405
Closes #202
How does it work, what questions do you have?
I created a new function
implied_outlives_for_fnwhich goes through input argument and output types for a function and produces aWcscorresponding to the function's implied outlives bounds. When encountering a ref it creates aWhereClause::Outlivesfor the inner type and the outer lifetime. The function recurses to handle nested borrows. The finalWcsis included in the assumptions ofcheck_fn.I think the logic seems sound and all tests pass, but:
Some old tests had to be updated due to the new assumptions.
This is a second attempt at #407 after I messed up the history trying to merge test updates.
AI disclosure