Tracking Issue for experiment with default auto traits
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 119k
- Forks
- 16.1k
- PR merge metrics
- PR metrics pending
Description
This is a tracking issue for the lang experiment with new default auto traits, which is part of "MCP: Low level components for async drop" (rust-lang/compiler-team#727 + https://github.com/rust-lang/rust/pull/120706#issue-2121169490)
Default auto traits are gated behind -Zexperimental-default-bounds.
The experiment was accepted in rust-lang/rust#120706 (comment). See the PR description of #120706 for more details.
About tracking issues
Tracking issues are used to record the overall progress of implementation. They are also used as hubs connecting to other relevant issues, e.g., bugs or open design questions. A tracking issue is however not meant for large scale discussion, questions, or bug reports about a feature. Instead, open a dedicated issue for the specific matter and add the relevant feature gate label. Discussion comments will get marked as off-topic or deleted. Repeated discussions on the tracking issue may lead to the tracking issue getting locked.
Steps
- Implementation
- Support
?Traitsyntax in more contexts (rust-lang/rust#121676) - Support default bounds for new lang item traits (rust-lang/rust#120706)
- Support switching to the new default traits using a edition
- Support switching to the new default traits using an crate-level or module-level attribute (https://github.com/rust-lang/rfcs/pull/3783)
- Support
- Standard library experiments
- Publish results
Unresolved Questions
- due to performance issues, we currently only add the new default traits as super traits if it is required. Ideally this behavior should be consistent
- Default auto traits trigger several compiler bugs:
- Default auto traits cause a huge performance regressions and overflow errors
- Default auto traits are incompatible with non-lifetime binders
- Migration to a new edition
Implementation history
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the PR description for rust-lang/rust#120706 and the linked compiler-team design discussion. Use the unchecked implementation, standard-library, publication, and unresolved-question items to define the work; completion would require resolving or documenting the relevant checklist items and updating this tracking issue.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100