Skip to content

Tracking Issue for extended generic associated types #95451

Closed as not planned
Closed as not planned
@jackh726

Description

@jackh726

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-GATsArea: Generic associated types (GATs)C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFCF-generic_associated_types_extended`#![feature(generic_associated_types_extended)]`S-tracking-perma-unstableStatus: The feature will stay unstable indefinitely.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-langRelevant to the language team

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions