-
-
Notifications
You must be signed in to change notification settings - Fork 14.9k
implement is_coinductive chalk callback #55096
Copy link
Copy link
Closed
Labels
A-trait-systemArea: Trait systemArea: Trait systemE-mentorCall for participation: This issue has a mentor. Use #t-compiler/help on Zulip for discussion.Call for participation: This issue has a mentor. Use #t-compiler/help on Zulip for discussion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Metadata
Metadata
Assignees
Labels
A-trait-systemArea: Trait systemArea: Trait systemE-mentorCall for participation: This issue has a mentor. Use #t-compiler/help on Zulip for discussion.Call for participation: This issue has a mentor. Use #t-compiler/help on Zulip for discussion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Type
Fields
Give feedbackNo fields configured for issues without a type.
The chalk integrate includes a
is_coinductivecallback that indicates whether a particular goal is co-inductive:rust/src/librustc_traits/chalk_context.rs
Lines 132 to 135 in e1643a8
A co-inductive goal is one of the following (see the corresponding chalk code for a kind of reference):
The existing trait solver doesn't have this notion of "well-formed trait goals" -- but it does have code related to testing about auto-traits that gives a few clues as to how to do the first step.