Downgrade rc_buffer to restriction #6128
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I think Arc<Vec<T>> and Arc<String> and similar are a totally reasonable data structure, as observed by others in the comments on #6044 as well. Doing
Arc::make_mut(&mut self.vec).push(...)
orArc::make_mut(&mut self.string).push_str("...")
is a terrific and well performing copy-on-write pattern. Linting this with an enabled-by-default performance lint strikes me as an unacceptable false positive balance.As of #6090 the documentation of this lint now contains:
which should indicate that we shouldn't be linting against correct, reasonable, well-performing patterns with an enabled-by-default lint.
Mentioning #6044, #6090.
r? @yaahc, who reviewed the lint.
changelog: Remove rc_buffer from default set of enabled lints