summaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2023-04-24 21:07:48 -0400
committerGitHub <noreply@github.com>2023-04-24 21:07:48 -0400
commit5b4a9b48aeabded174cc161bfdafb6529cffbca1 (patch)
tree77a2e82cfe04e2c1c04200496499a11f6d53b7e9 /cli
parent667acb075c0f1fb62bc1177f46b550e9dd506c00 (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.rs4
-rw-r--r--cli/module_loader.rs12
-rw-r--r--cli/npm/resolvers/common.rs4
-rw-r--r--cli/npm/resolvers/global.rs2
-rw-r--r--cli/npm/resolvers/local.rs2
-rw-r--r--cli/npm/resolvers/mod.rs2
-rw-r--r--cli/tsc/mod.rs6
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,