1
Fork 0

Remove a fishy Clone impl

This commit is contained in:
Oli Scherer 2023-03-14 11:30:23 +00:00
parent 35d06f9c74
commit aad33198ff
4 changed files with 27 additions and 11 deletions

View file

@ -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);