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