diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2023-04-24 21:07:48 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-24 21:07:48 -0400 |
commit | 5b4a9b48aeabded174cc161bfdafb6529cffbca1 (patch) | |
tree | 77a2e82cfe04e2c1c04200496499a11f6d53b7e9 /cli | |
parent | 667acb075c0f1fb62bc1177f46b550e9dd506c00 (diff) |
refactor(ext/node): enforce interior mutable for `NodePermissions` to remove clones (#18831)
We can make `NodePermissions` rely on interior mutability (which the
`PermissionsContainer` is already doing) in order to not have to clone
everything all the time. This also reduces the chance of an accidental
`borrow` while `borrrow_mut`.
Diffstat (limited to 'cli')
-rw-r--r-- | cli/lsp/documents.rs | 4 | ||||
-rw-r--r-- | cli/module_loader.rs | 12 | ||||
-rw-r--r-- | cli/npm/resolvers/common.rs | 4 | ||||
-rw-r--r-- | cli/npm/resolvers/global.rs | 2 | ||||
-rw-r--r-- | cli/npm/resolvers/local.rs | 2 | ||||
-rw-r--r-- | cli/npm/resolvers/mod.rs | 2 | ||||
-rw-r--r-- | cli/tsc/mod.rs | 6 |
7 files changed, 16 insertions, 16 deletions
diff --git a/cli/lsp/documents.rs b/cli/lsp/documents.rs index 31aa3ae8e..3f77eaaa2 100644 --- a/cli/lsp/documents.rs +++ b/cli/lsp/documents.rs @@ -1074,7 +1074,7 @@ impl Documents { &specifier, referrer, NodeResolutionMode::Types, - &mut PermissionsContainer::allow_all(), + &PermissionsContainer::allow_all(), ) .ok() .flatten(), @@ -1461,7 +1461,7 @@ fn node_resolve_npm_req_ref( .resolve_npm_req_reference( &npm_req_ref, NodeResolutionMode::Types, - &mut PermissionsContainer::allow_all(), + &PermissionsContainer::allow_all(), ) .ok() .flatten(), diff --git a/cli/module_loader.rs b/cli/module_loader.rs index 5a7743ef2..0f0568272 100644 --- a/cli/module_loader.rs +++ b/cli/module_loader.rs @@ -450,10 +450,10 @@ impl ModuleLoader for CliModuleLoader { referrer: &str, kind: ResolutionKind, ) -> Result<ModuleSpecifier, AnyError> { - let mut permissions = if matches!(kind, ResolutionKind::DynamicImport) { - self.dynamic_permissions.clone() + let permissions = if matches!(kind, ResolutionKind::DynamicImport) { + &self.dynamic_permissions } else { - self.root_permissions.clone() + &self.root_permissions }; // TODO(bartlomieju): ideally we shouldn't need to call `current_dir()` on each @@ -469,7 +469,7 @@ impl ModuleLoader for CliModuleLoader { specifier, referrer, NodeResolutionMode::Execution, - &mut permissions, + permissions, )) .with_context(|| { format!("Could not resolve '{specifier}' from '{referrer}'.") @@ -494,7 +494,7 @@ impl ModuleLoader for CliModuleLoader { self.node_resolver.resolve_npm_reference( &module.nv_reference, NodeResolutionMode::Execution, - &mut permissions, + permissions, ), ) .with_context(|| { @@ -556,7 +556,7 @@ impl ModuleLoader for CliModuleLoader { self.node_resolver.resolve_npm_req_reference( &reference, NodeResolutionMode::Execution, - &mut permissions, + permissions, ), ) .with_context(|| format!("Could not resolve '{reference}'.")); diff --git a/cli/npm/resolvers/common.rs b/cli/npm/resolvers/common.rs index a31459a70..ccba00d43 100644 --- a/cli/npm/resolvers/common.rs +++ b/cli/npm/resolvers/common.rs @@ -47,7 +47,7 @@ pub trait NpmPackageFsResolver: Send + Sync { fn ensure_read_permission( &self, - permissions: &mut dyn NodePermissions, + permissions: &dyn NodePermissions, path: &Path, ) -> Result<(), AnyError>; } @@ -90,7 +90,7 @@ pub async fn cache_packages( } pub fn ensure_registry_read_permission( - permissions: &mut dyn NodePermissions, + permissions: &dyn NodePermissions, registry_path: &Path, path: &Path, ) -> Result<(), AnyError> { diff --git a/cli/npm/resolvers/global.rs b/cli/npm/resolvers/global.rs index 66935380f..79df16187 100644 --- a/cli/npm/resolvers/global.rs +++ b/cli/npm/resolvers/global.rs @@ -126,7 +126,7 @@ impl NpmPackageFsResolver for GlobalNpmPackageResolver { fn ensure_read_permission( &self, - permissions: &mut dyn NodePermissions, + permissions: &dyn NodePermissions, path: &Path, ) -> Result<(), AnyError> { let registry_path = self.cache.registry_folder(&self.registry_url); diff --git a/cli/npm/resolvers/local.rs b/cli/npm/resolvers/local.rs index e2919f6ee..f5385c2f1 100644 --- a/cli/npm/resolvers/local.rs +++ b/cli/npm/resolvers/local.rs @@ -206,7 +206,7 @@ impl NpmPackageFsResolver for LocalNpmPackageResolver { fn ensure_read_permission( &self, - permissions: &mut dyn NodePermissions, + permissions: &dyn NodePermissions, path: &Path, ) -> Result<(), AnyError> { ensure_registry_read_permission( diff --git a/cli/npm/resolvers/mod.rs b/cli/npm/resolvers/mod.rs index fa83cdf59..60402bd27 100644 --- a/cli/npm/resolvers/mod.rs +++ b/cli/npm/resolvers/mod.rs @@ -262,7 +262,7 @@ impl NpmResolver for CliNpmResolver { fn ensure_read_permission( &self, - permissions: &mut dyn NodePermissions, + permissions: &dyn NodePermissions, path: &Path, ) -> Result<(), AnyError> { self.fs_resolver.ensure_read_permission(permissions, path) diff --git a/cli/tsc/mod.rs b/cli/tsc/mod.rs index aa589a1ca..b77f39fd5 100644 --- a/cli/tsc/mod.rs +++ b/cli/tsc/mod.rs @@ -639,7 +639,7 @@ fn resolve_graph_specifier_types( let maybe_resolution = node_resolver.resolve_npm_reference( &module.nv_reference, NodeResolutionMode::Types, - &mut PermissionsContainer::allow_all(), + &PermissionsContainer::allow_all(), )?; Ok(Some(NodeResolution::into_specifier_and_media_type( maybe_resolution, @@ -679,7 +679,7 @@ fn resolve_non_graph_specifier_types( specifier, referrer, NodeResolutionMode::Types, - &mut PermissionsContainer::allow_all(), + &PermissionsContainer::allow_all(), ) .ok() .flatten(), @@ -692,7 +692,7 @@ fn resolve_non_graph_specifier_types( let maybe_resolution = node_resolver.resolve_npm_req_reference( &npm_ref, NodeResolutionMode::Types, - &mut PermissionsContainer::allow_all(), + &PermissionsContainer::allow_all(), )?; Ok(Some(NodeResolution::into_specifier_and_media_type( maybe_resolution, |