Skip to content

drop LinkedList, the covered wrapper the crate's own lints forbid it a fixture for - #229

Merged
eburgos merged 1 commit into
masterfrom
chore/drop-linkedlist
Aug 8, 2026
Merged

drop LinkedList, the covered wrapper the crate's own lints forbid it a fixture for#229
eburgos merged 1 commit into
masterfrom
chore/drop-linkedlist

Conversation

@eburgos

@eburgos eburgos commented Aug 8, 2026

Copy link
Copy Markdown
Owner

LinkedList sat on the sequence-wrapper list, covered by name only: clippy's
linkedlist lint, denied through pedantic, forbids declaring a field of the
type in this crate's own tests, so nothing could ever exercise the macro
expanding over a real one. A support no fixture can prove is a promise the
suite cannot keep, and the lint's own rationale — use Vec — applies to this
crate's consumers as much as to this crate.

A LinkedList<T> field is refused now rather than silently unlisted, through
the same rejection seam the other refused std types answer from, so the field,
alias, brand-inner and filling positions all get the refusal spanned on their
own subject. The message is its own, not the deny-list's: that list's wording
says serde implements neither trait, which is false here — serde writes a
LinkedList as the same JSON array Vec writes, which is exactly why nothing
on the wire tells the two apart and only one spelling is described. The message
names both rewrites, Vec<T>, or VecDeque<T> where values are pushed at both
ends.

The three near-identical written-name walkers folded into one that takes the
predicate, so the new refusal did not add a fourth copy of a forty-arm match.

just check, just quick, just lint-all across all 68 toggles, and the test
powerset across all 68 in four partitions — all green.

…a fixture for

`LinkedList` sat on the sequence-wrapper list, covered by name only: clippy's
`linkedlist` lint, denied through pedantic, forbids declaring a field of the
type in this crate's own tests, so nothing could ever exercise the macro
expanding over a real one. A support no fixture can prove is a promise the
suite cannot keep, and the lint's own rationale — use `Vec` — applies to this
crate's consumers as much as to this crate.

A `LinkedList<T>` field is refused now rather than silently unlisted, through
the same rejection seam the other refused std types answer from, so the field,
alias, brand-inner and filling positions all get the refusal spanned on their
own subject. The message is its own, not the deny-list's: that list's wording
says serde implements neither trait, which is false here — serde writes a
`LinkedList` as the same JSON array `Vec` writes, which is exactly why nothing
on the wire tells the two apart and only one spelling is described. The message
names both rewrites, `Vec<T>`, or `VecDeque<T>` where values are pushed at both
ends.

The three near-identical written-name walkers folded into one that takes the
predicate, so the new refusal did not add a fourth copy of a forty-arm match.

just check, just quick, just lint-all across all 68 toggles, and the test
powerset across all 68 in four partitions — all green.
@eburgos
eburgos merged commit 265fd18 into master Aug 8, 2026
@eburgos
eburgos deleted the chore/drop-linkedlist branch August 8, 2026 00:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant