Skip to content

Commit 58ba360

Browse files
committed
tree-wide: parallel: Fully removed all Lrc, replaced with Arc
1 parent 0eadd99 commit 58ba360

File tree

4 files changed

+57
-57
lines changed

4 files changed

+57
-57
lines changed

src/config/file_lines.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,17 @@
33
use itertools::Itertools;
44
use std::collections::HashMap;
55
use std::path::PathBuf;
6+
use std::sync::Arc;
67
use std::{cmp, fmt, iter, str};
78

8-
use rustc_data_structures::sync::Lrc;
99
use rustc_span::SourceFile;
1010
use serde::{Deserialize, Deserializer, Serialize, Serializer, ser};
1111
use serde_json as json;
1212
use thiserror::Error;
1313

1414
/// A range of lines in a file, inclusive of both ends.
1515
pub struct LineRange {
16-
pub(crate) file: Lrc<SourceFile>,
16+
pub(crate) file: Arc<SourceFile>,
1717
pub(crate) lo: usize,
1818
pub(crate) hi: usize,
1919
}

src/parse/session.rs

Lines changed: 49 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
use std::path::Path;
2+
use std::sync::Arc;
23
use std::sync::atomic::{AtomicBool, Ordering};
34

4-
use rustc_data_structures::sync::{IntoDynSyncSend, Lrc};
5+
use rustc_data_structures::sync::IntoDynSyncSend;
56
use rustc_errors::emitter::{DynEmitter, Emitter, HumanEmitter, SilentEmitter, stderr_destination};
67
use rustc_errors::registry::Registry;
78
use rustc_errors::translation::Translate;
@@ -25,17 +26,17 @@ use crate::{Config, ErrorKind, FileName};
2526
/// ParseSess holds structs necessary for constructing a parser.
2627
pub(crate) struct ParseSess {
2728
raw_psess: RawParseSess,
28-
ignore_path_set: Lrc<IgnorePathSet>,
29-
can_reset_errors: Lrc<AtomicBool>,
29+
ignore_path_set: Arc<IgnorePathSet>,
30+
can_reset_errors: Arc<AtomicBool>,
3031
}
3132

3233
/// Emit errors against every files expect ones specified in the `ignore_path_set`.
3334
struct SilentOnIgnoredFilesEmitter {
34-
ignore_path_set: IntoDynSyncSend<Lrc<IgnorePathSet>>,
35-
source_map: Lrc<SourceMap>,
35+
ignore_path_set: IntoDynSyncSend<Arc<IgnorePathSet>>,
36+
source_map: Arc<SourceMap>,
3637
emitter: Box<DynEmitter>,
3738
has_non_ignorable_parser_errors: bool,
38-
can_reset: Lrc<AtomicBool>,
39+
can_reset: Arc<AtomicBool>,
3940
}
4041

4142
impl SilentOnIgnoredFilesEmitter {
@@ -96,9 +97,9 @@ impl From<Color> for ColorConfig {
9697
}
9798

9899
fn default_dcx(
99-
source_map: Lrc<SourceMap>,
100-
ignore_path_set: Lrc<IgnorePathSet>,
101-
can_reset: Lrc<AtomicBool>,
100+
source_map: Arc<SourceMap>,
101+
ignore_path_set: Arc<IgnorePathSet>,
102+
can_reset: Arc<AtomicBool>,
102103
show_parse_errors: bool,
103104
color: Color,
104105
) -> DiagCtxt {
@@ -139,16 +140,16 @@ fn default_dcx(
139140
impl ParseSess {
140141
pub(crate) fn new(config: &Config) -> Result<ParseSess, ErrorKind> {
141142
let ignore_path_set = match IgnorePathSet::from_ignore_list(&config.ignore()) {
142-
Ok(ignore_path_set) => Lrc::new(ignore_path_set),
143+
Ok(ignore_path_set) => Arc::new(ignore_path_set),
143144
Err(e) => return Err(ErrorKind::InvalidGlobPattern(e)),
144145
};
145-
let source_map = Lrc::new(SourceMap::new(FilePathMapping::empty()));
146-
let can_reset_errors = Lrc::new(AtomicBool::new(false));
146+
let source_map = Arc::new(SourceMap::new(FilePathMapping::empty()));
147+
let can_reset_errors = Arc::new(AtomicBool::new(false));
147148

148149
let dcx = default_dcx(
149-
Lrc::clone(&source_map),
150-
Lrc::clone(&ignore_path_set),
151-
Lrc::clone(&can_reset_errors),
150+
Arc::clone(&source_map),
151+
Arc::clone(&ignore_path_set),
152+
Arc::clone(&can_reset_errors),
152153
config.show_parse_errors(),
153154
config.color(),
154155
);
@@ -211,7 +212,7 @@ impl ParseSess {
211212
self.raw_psess.source_map().span_to_filename(span).into()
212213
}
213214

214-
pub(crate) fn span_to_file_contents(&self, span: Span) -> Lrc<rustc_span::SourceFile> {
215+
pub(crate) fn span_to_file_contents(&self, span: Span) -> Arc<rustc_span::SourceFile> {
215216
self.raw_psess
216217
.source_map()
217218
.lookup_source_file(span.data().lo)
@@ -255,11 +256,11 @@ impl ParseSess {
255256
SnippetProvider::new(
256257
source_file.start_pos,
257258
source_file.end_position(),
258-
Lrc::clone(source_file.src.as_ref().unwrap()),
259+
Arc::clone(source_file.src.as_ref().unwrap()),
259260
)
260261
}
261262

262-
pub(crate) fn get_original_snippet(&self, file_name: &FileName) -> Option<Lrc<String>> {
263+
pub(crate) fn get_original_snippet(&self, file_name: &FileName) -> Option<Arc<String>> {
263264
self.raw_psess
264265
.source_map()
265266
.get_source_file(&file_name.into())
@@ -331,7 +332,7 @@ mod tests {
331332
use std::sync::atomic::AtomicU32;
332333

333334
struct TestEmitter {
334-
num_emitted_errors: Lrc<AtomicU32>,
335+
num_emitted_errors: Arc<AtomicU32>,
335336
}
336337

337338
impl Translate for TestEmitter {
@@ -365,15 +366,15 @@ mod tests {
365366
}
366367

367368
fn build_emitter(
368-
num_emitted_errors: Lrc<AtomicU32>,
369-
can_reset: Lrc<AtomicBool>,
370-
source_map: Option<Lrc<SourceMap>>,
369+
num_emitted_errors: Arc<AtomicU32>,
370+
can_reset: Arc<AtomicBool>,
371+
source_map: Option<Arc<SourceMap>>,
371372
ignore_list: Option<IgnoreList>,
372373
) -> SilentOnIgnoredFilesEmitter {
373374
let emitter_writer = TestEmitter { num_emitted_errors };
374375
let source_map =
375-
source_map.unwrap_or_else(|| Lrc::new(SourceMap::new(FilePathMapping::empty())));
376-
let ignore_path_set = Lrc::new(
376+
source_map.unwrap_or_else(|| Arc::new(SourceMap::new(FilePathMapping::empty())));
377+
let ignore_path_set = Arc::new(
377378
IgnorePathSet::from_ignore_list(&ignore_list.unwrap_or_default()).unwrap(),
378379
);
379380
SilentOnIgnoredFilesEmitter {
@@ -393,10 +394,10 @@ mod tests {
393394

394395
#[test]
395396
fn handles_fatal_parse_error_in_ignored_file() {
396-
let num_emitted_errors = Lrc::new(AtomicU32::new(0));
397-
let can_reset_errors = Lrc::new(AtomicBool::new(false));
397+
let num_emitted_errors = Arc::new(AtomicU32::new(0));
398+
let can_reset_errors = Arc::new(AtomicBool::new(false));
398399
let ignore_list = get_ignore_list(r#"ignore = ["foo.rs"]"#);
399-
let source_map = Lrc::new(SourceMap::new(FilePathMapping::empty()));
400+
let source_map = Arc::new(SourceMap::new(FilePathMapping::empty()));
400401
let source =
401402
String::from(r#"extern "system" fn jni_symbol!( funcName ) ( ... ) -> {} "#);
402403
source_map.new_source_file(
@@ -405,9 +406,9 @@ mod tests {
405406
);
406407
let registry = Registry::new(&[]);
407408
let mut emitter = build_emitter(
408-
Lrc::clone(&num_emitted_errors),
409-
Lrc::clone(&can_reset_errors),
410-
Some(Lrc::clone(&source_map)),
409+
Arc::clone(&num_emitted_errors),
410+
Arc::clone(&can_reset_errors),
411+
Some(Arc::clone(&source_map)),
411412
Some(ignore_list),
412413
);
413414
let span = MultiSpan::from_span(mk_sp(BytePos(0), BytePos(1)));
@@ -420,20 +421,20 @@ mod tests {
420421
#[nightly_only_test]
421422
#[test]
422423
fn handles_recoverable_parse_error_in_ignored_file() {
423-
let num_emitted_errors = Lrc::new(AtomicU32::new(0));
424-
let can_reset_errors = Lrc::new(AtomicBool::new(false));
424+
let num_emitted_errors = Arc::new(AtomicU32::new(0));
425+
let can_reset_errors = Arc::new(AtomicBool::new(false));
425426
let ignore_list = get_ignore_list(r#"ignore = ["foo.rs"]"#);
426-
let source_map = Lrc::new(SourceMap::new(FilePathMapping::empty()));
427+
let source_map = Arc::new(SourceMap::new(FilePathMapping::empty()));
427428
let source = String::from(r#"pub fn bar() { 1x; }"#);
428429
source_map.new_source_file(
429430
SourceMapFileName::Real(RealFileName::LocalPath(PathBuf::from("foo.rs"))),
430431
source,
431432
);
432433
let registry = Registry::new(&[]);
433434
let mut emitter = build_emitter(
434-
Lrc::clone(&num_emitted_errors),
435-
Lrc::clone(&can_reset_errors),
436-
Some(Lrc::clone(&source_map)),
435+
Arc::clone(&num_emitted_errors),
436+
Arc::clone(&can_reset_errors),
437+
Some(Arc::clone(&source_map)),
437438
Some(ignore_list),
438439
);
439440
let span = MultiSpan::from_span(mk_sp(BytePos(0), BytePos(1)));
@@ -446,19 +447,19 @@ mod tests {
446447
#[nightly_only_test]
447448
#[test]
448449
fn handles_recoverable_parse_error_in_non_ignored_file() {
449-
let num_emitted_errors = Lrc::new(AtomicU32::new(0));
450-
let can_reset_errors = Lrc::new(AtomicBool::new(false));
451-
let source_map = Lrc::new(SourceMap::new(FilePathMapping::empty()));
450+
let num_emitted_errors = Arc::new(AtomicU32::new(0));
451+
let can_reset_errors = Arc::new(AtomicBool::new(false));
452+
let source_map = Arc::new(SourceMap::new(FilePathMapping::empty()));
452453
let source = String::from(r#"pub fn bar() { 1x; }"#);
453454
source_map.new_source_file(
454455
SourceMapFileName::Real(RealFileName::LocalPath(PathBuf::from("foo.rs"))),
455456
source,
456457
);
457458
let registry = Registry::new(&[]);
458459
let mut emitter = build_emitter(
459-
Lrc::clone(&num_emitted_errors),
460-
Lrc::clone(&can_reset_errors),
461-
Some(Lrc::clone(&source_map)),
460+
Arc::clone(&num_emitted_errors),
461+
Arc::clone(&can_reset_errors),
462+
Some(Arc::clone(&source_map)),
462463
None,
463464
);
464465
let span = MultiSpan::from_span(mk_sp(BytePos(0), BytePos(1)));
@@ -471,9 +472,9 @@ mod tests {
471472
#[nightly_only_test]
472473
#[test]
473474
fn handles_mix_of_recoverable_parse_error() {
474-
let num_emitted_errors = Lrc::new(AtomicU32::new(0));
475-
let can_reset_errors = Lrc::new(AtomicBool::new(false));
476-
let source_map = Lrc::new(SourceMap::new(FilePathMapping::empty()));
475+
let num_emitted_errors = Arc::new(AtomicU32::new(0));
476+
let can_reset_errors = Arc::new(AtomicBool::new(false));
477+
let source_map = Arc::new(SourceMap::new(FilePathMapping::empty()));
477478
let ignore_list = get_ignore_list(r#"ignore = ["foo.rs"]"#);
478479
let bar_source = String::from(r#"pub fn bar() { 1x; }"#);
479480
let foo_source = String::from(r#"pub fn foo() { 1x; }"#);
@@ -493,9 +494,9 @@ mod tests {
493494
);
494495
let registry = Registry::new(&[]);
495496
let mut emitter = build_emitter(
496-
Lrc::clone(&num_emitted_errors),
497-
Lrc::clone(&can_reset_errors),
498-
Some(Lrc::clone(&source_map)),
497+
Arc::clone(&num_emitted_errors),
498+
Arc::clone(&can_reset_errors),
499+
Some(Arc::clone(&source_map)),
499500
Some(ignore_list),
500501
);
501502
let bar_span = MultiSpan::from_span(mk_sp(BytePos(0), BytePos(1)));

src/source_file.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
use std::fs;
22
use std::io::{self, Write};
33
use std::path::Path;
4+
use std::sync::Arc;
45

56
use crate::NewlineStyle;
67
use crate::config::FileName;
@@ -14,8 +15,6 @@ use crate::create_emitter;
1415
#[cfg(test)]
1516
use crate::formatting::FileRecord;
1617

17-
use rustc_data_structures::sync::Lrc;
18-
1918
// Append a newline to the end of each file.
2019
pub(crate) fn append_newline(s: &mut String) {
2120
s.push('\n');
@@ -88,11 +87,11 @@ where
8887
// source map instead of hitting the file system. This also supports getting
8988
// original text for `FileName::Stdin`.
9089
let original_text = if newline_style != NewlineStyle::Auto && *filename != FileName::Stdin {
91-
Lrc::new(fs::read_to_string(ensure_real_path(filename))?)
90+
Arc::new(fs::read_to_string(ensure_real_path(filename))?)
9291
} else {
9392
match psess.and_then(|psess| psess.get_original_snippet(filename)) {
9493
Some(ori) => ori,
95-
None => Lrc::new(fs::read_to_string(ensure_real_path(filename))?),
94+
None => Arc::new(fs::read_to_string(ensure_real_path(filename))?),
9695
}
9796
};
9897

src/visitor.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
use std::cell::{Cell, RefCell};
22
use std::rc::Rc;
3+
use std::sync::Arc;
34

45
use rustc_ast::{ast, token::Delimiter, visit};
5-
use rustc_data_structures::sync::Lrc;
66
use rustc_span::{BytePos, Pos, Span, symbol};
77
use tracing::debug;
88

@@ -32,7 +32,7 @@ use crate::{ErrorKind, FormatReport, FormattingError};
3232
/// Creates a string slice corresponding to the specified span.
3333
pub(crate) struct SnippetProvider {
3434
/// A pointer to the content of the file we are formatting.
35-
big_snippet: Lrc<String>,
35+
big_snippet: Arc<String>,
3636
/// A position of the start of `big_snippet`, used as an offset.
3737
start_pos: usize,
3838
/// An end position of the file that this snippet lives.
@@ -46,7 +46,7 @@ impl SnippetProvider {
4646
Some(&self.big_snippet[start_index..end_index])
4747
}
4848

49-
pub(crate) fn new(start_pos: BytePos, end_pos: BytePos, big_snippet: Lrc<String>) -> Self {
49+
pub(crate) fn new(start_pos: BytePos, end_pos: BytePos, big_snippet: Arc<String>) -> Self {
5050
let start_pos = start_pos.to_usize();
5151
let end_pos = end_pos.to_usize();
5252
SnippetProvider {

0 commit comments

Comments
 (0)