mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-25 08:13:41 +00:00
Remove a fishy Clone impl
This commit is contained in:
parent
35d06f9c74
commit
aad33198ff
@ -481,14 +481,6 @@ impl<T: Default> Default for Lock<T> {
|
||||
}
|
||||
}
|
||||
|
||||
// FIXME: Probably a bad idea
|
||||
impl<T: Clone> Clone for Lock<T> {
|
||||
#[inline]
|
||||
fn clone(&self) -> Self {
|
||||
Lock::new(self.borrow().clone())
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Default)]
|
||||
pub struct RwLock<T>(InnerRwLock<T>);
|
||||
|
||||
|
@ -263,7 +263,8 @@ impl AllocDecodingState {
|
||||
}
|
||||
|
||||
pub fn new(data_offsets: Vec<u32>) -> Self {
|
||||
let decoding_state = vec![Lock::new(State::Empty); data_offsets.len()];
|
||||
let decoding_state =
|
||||
std::iter::repeat_with(|| Lock::new(State::Empty)).take(data_offsets.len()).collect();
|
||||
|
||||
Self { decoding_state, data_offsets }
|
||||
}
|
||||
|
@ -7,11 +7,16 @@ use rustc_data_structures::sync::Lock;
|
||||
|
||||
use std::hash::Hash;
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct Cache<Key, Value> {
|
||||
hashmap: Lock<FxHashMap<Key, WithDepNode<Value>>>,
|
||||
}
|
||||
|
||||
impl<Key: Clone, Value: Clone> Clone for Cache<Key, Value> {
|
||||
fn clone(&self) -> Self {
|
||||
Self { hashmap: Lock::new(self.hashmap.borrow().clone()) }
|
||||
}
|
||||
}
|
||||
|
||||
impl<Key, Value> Default for Cache<Key, Value> {
|
||||
fn default() -> Self {
|
||||
Self { hashmap: Default::default() }
|
||||
|
@ -1318,7 +1318,6 @@ pub struct SourceFileDiffs {
|
||||
}
|
||||
|
||||
/// A single source in the [`SourceMap`].
|
||||
#[derive(Clone)]
|
||||
pub struct SourceFile {
|
||||
/// The name of the file that the source came from. Source that doesn't
|
||||
/// originate from files has names between angle brackets by convention
|
||||
@ -1349,6 +1348,25 @@ pub struct SourceFile {
|
||||
pub cnum: CrateNum,
|
||||
}
|
||||
|
||||
impl Clone for SourceFile {
|
||||
fn clone(&self) -> Self {
|
||||
Self {
|
||||
name: self.name.clone(),
|
||||
src: self.src.clone(),
|
||||
src_hash: self.src_hash.clone(),
|
||||
external_src: Lock::new(self.external_src.borrow().clone()),
|
||||
start_pos: self.start_pos.clone(),
|
||||
end_pos: self.end_pos.clone(),
|
||||
lines: Lock::new(self.lines.borrow().clone()),
|
||||
multibyte_chars: self.multibyte_chars.clone(),
|
||||
non_narrow_chars: self.non_narrow_chars.clone(),
|
||||
normalized_pos: self.normalized_pos.clone(),
|
||||
name_hash: self.name_hash.clone(),
|
||||
cnum: self.cnum.clone(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<S: Encoder> Encodable<S> for SourceFile {
|
||||
fn encode(&self, s: &mut S) {
|
||||
self.name.encode(s);
|
||||
|
Loading…
Reference in New Issue
Block a user