diff options
-rw-r--r-- | cli/ast.rs | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/cli/ast.rs b/cli/ast.rs index 156faf972..a8bc5adb4 100644 --- a/cli/ast.rs +++ b/cli/ast.rs @@ -12,7 +12,7 @@ use std::fmt; use std::ops::Range; use std::rc::Rc; use std::sync::Arc; -use std::sync::RwLock; +use std::sync::Mutex; use swc_common::chain; use swc_common::comments::Comment; use swc_common::comments::CommentKind; @@ -107,7 +107,7 @@ impl DiagnosticBuffer { where F: Fn(Span) -> Loc, { - let s = error_buffer.0.read().unwrap().clone(); + let s = error_buffer.0.lock().unwrap().clone(); let diagnostics = s .iter() .map(|d| { @@ -134,18 +134,12 @@ impl DiagnosticBuffer { } /// A buffer for collecting errors from the AST parser. -#[derive(Debug, Clone)] -pub struct ErrorBuffer(Arc<RwLock<Vec<Diagnostic>>>); - -impl ErrorBuffer { - pub fn new() -> Self { - Self(Arc::new(RwLock::new(Vec::new()))) - } -} +#[derive(Debug, Clone, Default)] +pub struct ErrorBuffer(Arc<Mutex<Vec<Diagnostic>>>); impl Emitter for ErrorBuffer { fn emit(&mut self, db: &DiagnosticBuilder) { - self.0.write().unwrap().push((**db).clone()); + self.0.lock().unwrap().push((**db).clone()); } } @@ -365,7 +359,7 @@ pub fn parse_with_source_map( FileName::Custom(specifier.to_string()), source.to_string(), ); - let error_buffer = ErrorBuffer::new(); + let error_buffer = ErrorBuffer::default(); let syntax = get_syntax(media_type); let input = StringInput::from(&*source_file); let comments = SingleThreadedComments::default(); |