Skip to content

Commit

Permalink
Account for blanket implementations in trait sealing logic. (#430) (#432
Browse files Browse the repository at this point in the history
)

* Account for blanket implementations in trait sealing logic. (#430)

* Add sealed trait test cases that use blanket impls.

* Implement blanket-impl-aware sealed trait detection.

* Update sealed_trait.rs
  • Loading branch information
obi1kenobi committed Aug 31, 2024
1 parent 431adb9 commit 83efc64
Show file tree
Hide file tree
Showing 3 changed files with 555 additions and 27 deletions.
116 changes: 116 additions & 0 deletions src/adapter/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,122 @@ fn rustdoc_sealed_traits() {
name: "NotGenericSealedBecauseOfPubSupertrait".into(),
sealed: false,
},
Output {
name: "FullBlanket".into(),
sealed: true,
},
Output {
name: "PrivateBlanket".into(),
sealed: true,
},
Output {
name: "RefBlanket".into(),
sealed: true,
},
Output {
name: "ExternalSupertraitsBlanket".into(),
sealed: true,
},
Output {
name: "BlanketWithWhereClause".into(),
sealed: true,
},
Output {
name: "IteratorBlanket".into(),
sealed: true,
},
Output {
name: "BlanketOverLocalUnsealedTrait".into(),
sealed: true,
},
Output {
name: "BlanketOverSealedTrait".into(),
sealed: true,
},
Output {
name: "BlanketOverSealedAndUnsealedTrait".into(),
sealed: true,
},
Output {
name: "TransitiveBlanket".into(),
sealed: true,
},
Output {
name: "BlanketOverArc".into(),
sealed: true,
},
Output {
name: "BlanketOverTuple".into(),
sealed: true,
},
Output {
name: "BlanketOverSlice".into(),
sealed: true,
},
Output {
name: "BlanketOverArray".into(),
sealed: true,
},
Output {
name: "BlanketOverPointer".into(),
sealed: true,
},
Output {
name: "BlanketUnsealed".into(),
sealed: false,
},
Output {
name: "RefBlanketUnsealed".into(),
sealed: false,
},
Output {
name: "ExternalSupertraitsBlanketUnsealed".into(),
sealed: false,
},
Output {
name: "BlanketWithWhereClauseUnsealed".into(),
sealed: false,
},
Output {
name: "IteratorBlanketUnsealed".into(),
sealed: false,
},
Output {
name: "BlanketOverLocalUnsealedTraitUnsealed".into(),
sealed: false,
},
Output {
name: "BlanketOverSealedTraitSealed".into(),
sealed: true,
},
Output {
name: "BlanketSealedOverMultiple".into(),
sealed: true,
},
Output {
name: "TransitiveBlanketUnsealed".into(),
sealed: false,
},
Output {
name: "BlanketOverArcSealed".into(),
sealed: true,
},
Output {
name: "BlanketOverTupleSealed".into(),
sealed: true,
},
Output {
name: "BlanketOverSliceSealed".into(),
sealed: true,
},
Output {
name: "BlanketOverArraySealed".into(),
sealed: true,
},
Output {
name: "BlanketOverPointerSealed".into(),
sealed: true,
},
];
expected_results.sort_unstable();

Expand Down
Loading

0 comments on commit 83efc64

Please sign in to comment.