More flexible coherence rules that permit overlap
Nobody has claimed this yet.
- Dominant language
- Markdown
- Stars
- 6.6k
- Forks
- 1.7k
- Avg merge
- 16h 14m
- Merged PRs (30d)
- 1
Description
There is a need for more flexible coherence rules, and in particular a way to permit overlap in some cases. There are numerous proposals for how to go about achieving that. Here is a summary:
- Specialization
- Negative bounds (e.g., RFC https://github.com/rust-lang/rfcs/pull/586)
- Crate-local or scoped impls
Note that a prime concern here is forwards compatibility. See RFC #1023 (and this internals thread) for details.
RFCs and other links:
- rust-lang/rfcs#586
- rust-lang/rfcs#1148
- A modest proposal around negative reasoning and auto traits
Contributor guide
No contributing guide indexed for this repository
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 reviewing the listed proposals, including RFCs #586, #1148, and #1023, along with the linked internals discussion and negative-reasoning proposal. Compare specialization, negative bounds, and crate-local or scoped impls, keeping forwards compatibility as the primary constraint. Done requires a concrete, resolved direction for more flexible coherence rules.
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
- 15/100