-
Notifications
You must be signed in to change notification settings - Fork 14k
Closed
Labels
A-type-systemArea: Type systemArea: Type systemB-RFC-approvedBlocker: Approved by a merged RFC but not yet implemented.Blocker: Approved by a merged RFC but not yet implemented.C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFCCategory: An issue tracking the progress of sth. like the implementation of an RFCS-tracking-needs-summaryStatus: It's hard to tell what's been done and what hasn't! Someone should do some investigation.Status: It's hard to tell what's been done and what hasn't! Someone should do some investigation.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.T-langRelevant to the language teamRelevant to the language teamWG-traits[RETIRED] Working group: Traits[RETIRED] Working group: Traits
Description
Tracking issue for rust-lang/rfcs#1214
- ICE: Encountered error
Unimplemented... (trait objects & associated type bounds) #26406 -
Mismatched assumptions for interaction between associated type and lifetime in trait #24622 -
associated type does not live long enough #23442 -
&[Trait] should probably not be allowed #21748 -
[[T]] is allowed in structs #25692 -
declaration of non-object-safe trait object type should be invalid #21953 -
format_args! returned from a closure causes corruption/crash #27592 - Just take implied bounds from arguments. Implementing this probably requires improving
check_method -
Apparent regression in implied bounds #27583 - Clarify WF checking for negative impls
- WF checking for object fragments where
Selfis not needed - static methods should be able to assume that
Selfis WF, I believe (at least in trait impls) - WF for trait objects should include the trait bounds
- object-safe traits can have associated types with unchecked bounds #27675: object-safe traits can have associated types with unchecked bounds (unsoundness bug)
After warning cycle is complete
- Remove old WF check
- Remove RFC1214 origins and warnings
- Remove special treatment of
ReEmptyin the outlives relation
Testing chart
| Subject | Tests | Issues |
|---|---|---|
| OutlivesScalar | regions-outlives-scalar.rs | |
| OutlivesNominalType | regions-outlives-nominal-type-struct.rs | |
| regions-outlives-nominal-type-enum.rs | ||
| OutlivesReference | all of the other tests | |
| OutlivesObject | compile-fail/wf-in-obj-type-static.rs | |
| OutlivesProjectionEnv | compile-fail/wf-in-obj-type-static.rs | |
| WfObject, lifetime bounds | compile-fail/regions-wf-trait-object.rs | |
| WfSlice | compile-file/wf-array-elem-sized.rs | |
| const | wf-const-type.rs | |
| struct, bound | wf-struct-bound.rs | |
| struct, field | ...many other tests... | |
| enum, bound | wf-enum-bound.rs | |
| enum, field | ...many other tests... | |
| trait, bound | wf-trait-bound.rs | |
| trait, assoc type default | wf-trait-associated-type-trait.rs | |
| wf-trait-associated-type-region.rs | ||
| trait, assoc type bound | wf-trait-associated-type-bound.rs | |
| trait, default fn, arg | wf-trait-default-fn-arg.rs | |
| trait, default fn, return | wf-trait-default-fn-ret.rs | |
| trait, default fn, where clause | wf-trait-default-fn-where-clause.rs | |
| trait, fn, arg | wf-trait-fn-arg.rs | |
| trait, fn, return | wf-trait-fn-ret.rs | |
| trait, fn, where clause | wf-trait-fn-where-clause.rs | |
| fn item, argument type | wf-in-fn-arg.rs | |
| fn item, return type | wf-in-fn-ret.rs | |
| fn item, where clause | wf-in-fn-where-clause.rs | |
| inherent impl, where clause | wf-inherent-impl-where-clause.rs | |
| inherent impl, fn, where clause | wf-inherent-impl-method-where-clause.rs | |
| impl, assoc type default | wf-impl-associated-type-region.rs | |
| wf-impl-associated-type-trait.rs | ||
| fn type, argument type | wf-in-fn-type-arg.rs | |
| fn type, return type | wf-in-fn-type-ret.rs | |
| wf-in-fn-type-static.rs | ||
| object type arg | compile-fail/wf-in-obj-type-static.rs | |
| compile-fail/wf-in-obj-type-region.rs | ||
| object safety | compile-fail/wf-object-safe.rs | #21953 |
fn(T): 'a affects T |
compile-fail/wf-outlives-ty-in-fn-or-trait.rs | |
| OutlivesProjection* | compile-fail/associated-types-outlives.rs | #24622 |
| OutlivesProjection* | compile-fail/regions-assoc-type-outlives-container*.rs | |
| OutlivesProjectionComponents | compile-fail/regions-close-associated-type-into-object.rs | |
| implied bounds projection gap | compile-fail/regions-implied-bounds-projection-gap*rs |
Metadata
Metadata
Assignees
Labels
A-type-systemArea: Type systemArea: Type systemB-RFC-approvedBlocker: Approved by a merged RFC but not yet implemented.Blocker: Approved by a merged RFC but not yet implemented.C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFCCategory: An issue tracking the progress of sth. like the implementation of an RFCS-tracking-needs-summaryStatus: It's hard to tell what's been done and what hasn't! Someone should do some investigation.Status: It's hard to tell what's been done and what hasn't! Someone should do some investigation.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.T-langRelevant to the language teamRelevant to the language teamWG-traits[RETIRED] Working group: Traits[RETIRED] Working group: Traits