When inserting a node N into the tree of impls, we sometimes find than an existing node C should be replaced with N. We used to overwrite C in place with the new def-id N -- but since the lists of def-ids are separated by simplified type, that could lead to N being inserted in the wrong place. This meant we might miss conflicts. We are now not trying to be so smart -- we remove C and then add N later. |
||
|---|---|---|
| .. | ||
| defaultimpl | ||
| issue-52050.rs | ||
| README.md | ||
| specialization-default-projection.rs | ||
| specialization-default-types.rs | ||
| specialization-no-default.rs | ||
| specialization-overlap-negative.rs | ||
| specialization-overlap.rs | ||
| specialization-polarity.rs | ||
This directory contains the test for incorrect usage of specialization that should lead to compile failure. Those tests break down into a few categories:
-
Feature gating
-
Overlap checking with specialization enabled
- Basic overlap scenarios
- Includes purely structural overlap
- Includes purely trait-based overlap
- Includes mix
- Overlap with differing polarity
- Basic overlap scenarios
-
Attempt to rely on projection of a
defaulttype