diff options
Diffstat (limited to 'cli/lsp/tsc.rs')
-rw-r--r-- | cli/lsp/tsc.rs | 49 |
1 files changed, 11 insertions, 38 deletions
diff --git a/cli/lsp/tsc.rs b/cli/lsp/tsc.rs index 575476e40..8c7c4189c 100644 --- a/cli/lsp/tsc.rs +++ b/cli/lsp/tsc.rs @@ -822,13 +822,7 @@ fn cache_snapshot( .contains_key(&(specifier.clone().into(), version.clone().into())) { let s = ModuleSpecifier::resolve_url(&specifier)?; - let content = state - .state_snapshot - .documents - .lock() - .unwrap() - .content(&s)? - .unwrap(); + let content = state.state_snapshot.documents.content(&s)?.unwrap(); state .snapshots .insert((specifier.into(), version.into()), content); @@ -913,13 +907,7 @@ fn get_change_range(state: &mut State, args: Value) -> Result<Value, AnyError> { fn get_length(state: &mut State, args: Value) -> Result<Value, AnyError> { let v: SourceSnapshotArgs = serde_json::from_value(args)?; let specifier = ModuleSpecifier::resolve_url(&v.specifier)?; - if state - .state_snapshot - .documents - .lock() - .unwrap() - .contains(&specifier) - { + if state.state_snapshot.documents.contains(&specifier) { cache_snapshot(state, v.specifier.clone(), v.version.clone())?; let content = state .snapshots @@ -944,13 +932,7 @@ struct GetTextArgs { fn get_text(state: &mut State, args: Value) -> Result<Value, AnyError> { let v: GetTextArgs = serde_json::from_value(args)?; let specifier = ModuleSpecifier::resolve_url(&v.specifier)?; - let content = if state - .state_snapshot - .documents - .lock() - .unwrap() - .contains(&specifier) - { + let content = if state.state_snapshot.documents.contains(&specifier) { cache_snapshot(state, v.specifier.clone(), v.version.clone())?; state .snapshots @@ -974,9 +956,10 @@ fn resolve(state: &mut State, args: Value) -> Result<Value, AnyError> { return Err(custom_error("Deadlock", "deadlock locking sources")); }; - let documents = state.state_snapshot.documents.lock().unwrap(); - if documents.contains(&referrer) { - if let Some(dependencies) = documents.dependencies(&referrer) { + if state.state_snapshot.documents.contains(&referrer) { + if let Some(dependencies) = + state.state_snapshot.documents.dependencies(&referrer) + { for specifier in &v.specifiers { if specifier.starts_with("asset:///") { resolved.push(Some(( @@ -995,7 +978,7 @@ fn resolve(state: &mut State, args: Value) -> Result<Value, AnyError> { if let ResolvedDependency::Resolved(resolved_specifier) = resolved_import { - if documents.contains(&resolved_specifier) + if state.state_snapshot.documents.contains(&resolved_specifier) || sources.contains(&resolved_specifier) { let media_type = if let Some(media_type) = @@ -1050,9 +1033,7 @@ fn respond(state: &mut State, args: Value) -> Result<Value, AnyError> { } fn script_names(state: &mut State, _args: Value) -> Result<Value, AnyError> { - let documents = state.state_snapshot.documents.lock().unwrap(); - let script_names = documents.open_specifiers(); - Ok(json!(script_names)) + Ok(json!(state.state_snapshot.documents.open_specifiers())) } #[derive(Debug, Deserialize)] @@ -1064,13 +1045,7 @@ struct ScriptVersionArgs { fn script_version(state: &mut State, args: Value) -> Result<Value, AnyError> { let v: ScriptVersionArgs = serde_json::from_value(args)?; let specifier = ModuleSpecifier::resolve_url(&v.specifier)?; - if let Some(version) = state - .state_snapshot - .documents - .lock() - .unwrap() - .version(&specifier) - { + if let Some(version) = state.state_snapshot.documents.version(&specifier) { return Ok(json!(version.to_string())); } else { let mut sources = state.state_snapshot.sources.lock().unwrap(); @@ -1336,8 +1311,6 @@ pub fn request( mod tests { use super::*; use crate::lsp::documents::DocumentCache; - use std::sync::Arc; - use std::sync::Mutex; fn mock_state_snapshot(sources: Vec<(&str, &str, i32)>) -> StateSnapshot { let mut documents = DocumentCache::default(); @@ -1348,7 +1321,7 @@ mod tests { } StateSnapshot { assets: Default::default(), - documents: Arc::new(Mutex::new(documents)), + documents, sources: Default::default(), } } |