Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tracking Issue for extended generic associated types #95451

Closed
jackh726 opened this issue Mar 29, 2022 · 1 comment
Closed

Tracking Issue for extended generic associated types #95451

jackh726 opened this issue Mar 29, 2022 · 1 comment
Labels
A-GATs Area: Generic associated types (GATs) C-tracking-issue Category: An issue tracking the progress of sth. like the implementation of an RFC F-generic_associated_types_extended `#![feature(generic_associated_types_extended)]` S-tracking-perma-unstable Status: The feature will stay unstable indefinitely. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-lang Relevant to the language team, which will review and decide on the PR/issue.

Comments

@jackh726
Copy link
Member

jackh726 commented Mar 29, 2022

This is a tracking issue for extensions to the minimal generic_associated_types feature, intended to contain features not intended to be stabilized during initial stabilization. This is primarily for experimentation and likely will remain "incomplete" and almost certainly unsound, at least in the short-term. Longer-term, we like split these features out into separate feature gates, as their implementation becomes more complete.

The RFC for GATs is rust-lang/rfcs#1598, but this feature gate likely will contain features not included in the original RFC.
The feature gate for the issue is #![feature(generic_associated_types_extended)].

Repository

Features included under this feature gate

"Lazy" associated type obligations during projection

Summary

Briefly, this ignores obligations generated during projection when they contain placeholder regions generated from higher-ranked trait bounds. Eventually, the idea is to either check these more logically or to confirm that they are checked with concrete regions.

Implementation history

Unresolved questions

  • Logically and eagerly prove obligations; or, lazily prove obligations?

Object safe GATs

Summary

This feature allows traits with GATs to be object safe (other object safety requirements must hold).

Implementation history

Unresolved questions

@jackh726 jackh726 added C-tracking-issue Category: An issue tracking the progress of sth. like the implementation of an RFC T-lang Relevant to the language team, which will review and decide on the PR/issue. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. F-generic_associated_types_extended `#![feature(generic_associated_types_extended)]` labels Mar 29, 2022
@joshtriplett joshtriplett added the S-tracking-perma-unstable Status: The feature will stay unstable indefinitely. label Aug 10, 2022
@fmease fmease added the A-GATs Area: Generic associated types (GATs) label Nov 2, 2024
@fmease
Copy link
Member

fmease commented Dec 7, 2024

Since the feature has been removed, I'm going to close this tracking issue as not planned.
However, we might want to open a T-types Relevant to the types team, which will review and decide on the PR/issue. C-feature-request Category: A feature request, i.e: not implemented / a PR. A-GATs Area: Generic associated types (GATs) A-trait-objects Area: trait objects, vtable layout r-l/r1 issue to continue tracking "GATs in dyn-Trait" in some way.

Edit: Ah: #133768 (comment)

I don't think a tracking issue for object-safe GATs is super necessary, though I guess if you disagree feel free to open one.

Footnotes

  1. Or in https://github.com/rust-lang/generic-associated-types-initiative?

@fmease fmease closed this as not planned Won't fix, can't repro, duplicate, stale Dec 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-GATs Area: Generic associated types (GATs) C-tracking-issue Category: An issue tracking the progress of sth. like the implementation of an RFC F-generic_associated_types_extended `#![feature(generic_associated_types_extended)]` S-tracking-perma-unstable Status: The feature will stay unstable indefinitely. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-lang Relevant to the language team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

3 participants