summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock4
-rw-r--r--cli/Cargo.toml2
-rw-r--r--cli/lsp/analysis.rs3
-rw-r--r--cli/lsp/diagnostics.rs2
-rw-r--r--cli/tools/lint.rs10
5 files changed, 11 insertions, 10 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 063eddee6..6960dc3f5 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1163,9 +1163,9 @@ dependencies = [
[[package]]
name = "deno_lint"
-version = "0.40.0"
+version = "0.41.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "663d65cb008cddda1d705cd397d5d80fd37716e708b4182ca076244e18132ace"
+checksum = "bb65a10eb9bbff2c0e475958ea4a1f7db1f1e92d4a78a07853867049b7dfee8f"
dependencies = [
"anyhow",
"deno_ast",
diff --git a/cli/Cargo.toml b/cli/Cargo.toml
index ad2850705..9f48e2d0a 100644
--- a/cli/Cargo.toml
+++ b/cli/Cargo.toml
@@ -47,7 +47,7 @@ deno_core = { workspace = true, features = ["include_js_files_for_snapshotting"]
deno_doc = "0.57.0"
deno_emit = "0.16.0"
deno_graph = "=0.44.2"
-deno_lint = { version = "0.40.0", features = ["docs"] }
+deno_lint = { version = "0.41.0", features = ["docs"] }
deno_lockfile.workspace = true
deno_runtime = { workspace = true, features = ["dont_create_runtime_snapshot", "include_js_files_for_snapshotting"] }
deno_task_shell = "0.10.0"
diff --git a/cli/lsp/analysis.rs b/cli/lsp/analysis.rs
index 182ad940e..23bfeccd1 100644
--- a/cli/lsp/analysis.rs
+++ b/cli/lsp/analysis.rs
@@ -21,7 +21,6 @@ use once_cell::sync::Lazy;
use regex::Regex;
use std::cmp::Ordering;
use std::collections::HashMap;
-use std::sync::Arc;
use tower_lsp::lsp_types as lsp;
use tower_lsp::lsp_types::Position;
use tower_lsp::lsp_types::Range;
@@ -121,7 +120,7 @@ fn as_lsp_range(range: &deno_lint::diagnostic::Range) -> Range {
pub fn get_lint_references(
parsed_source: &deno_ast::ParsedSource,
- lint_rules: Vec<Arc<dyn LintRule>>,
+ lint_rules: Vec<&'static dyn LintRule>,
) -> Result<Vec<Reference>, AnyError> {
let linter = create_linter(parsed_source.media_type(), lint_rules);
let lint_diagnostics = linter.lint_with_ast(parsed_source);
diff --git a/cli/lsp/diagnostics.rs b/cli/lsp/diagnostics.rs
index f938ba6f4..380323dba 100644
--- a/cli/lsp/diagnostics.rs
+++ b/cli/lsp/diagnostics.rs
@@ -490,7 +490,7 @@ async fn generate_lint_diagnostics(
fn generate_document_lint_diagnostics(
config: &ConfigSnapshot,
lint_options: &LintOptions,
- lint_rules: Vec<Arc<dyn LintRule>>,
+ lint_rules: Vec<&'static dyn LintRule>,
document: &Document,
) -> Vec<lsp::Diagnostic> {
if !config.specifier_enabled(document.specifier()) {
diff --git a/cli/tools/lint.rs b/cli/tools/lint.rs
index 0f81ec89d..4eebf9e16 100644
--- a/cli/tools/lint.rs
+++ b/cli/tools/lint.rs
@@ -234,7 +234,7 @@ pub fn print_rules_list(json: bool) {
pub fn create_linter(
media_type: MediaType,
- rules: Vec<Arc<dyn LintRule>>,
+ rules: Vec<&'static dyn LintRule>,
) -> Linter {
LinterBuilder::default()
.ignore_file_directive("deno-lint-ignore-file")
@@ -247,7 +247,7 @@ pub fn create_linter(
fn lint_file(
file_path: &PathBuf,
source_code: String,
- lint_rules: Vec<Arc<dyn LintRule>>,
+ lint_rules: Vec<&'static dyn LintRule>,
) -> Result<(Vec<LintDiagnostic>, String), AnyError> {
let file_name = file_path.to_string_lossy().to_string();
let media_type = MediaType::from(file_path);
@@ -263,7 +263,7 @@ fn lint_file(
/// Treats input as TypeScript.
/// Compatible with `--json` flag.
fn lint_stdin(
- lint_rules: Vec<Arc<dyn LintRule>>,
+ lint_rules: Vec<&'static dyn LintRule>,
) -> Result<(Vec<LintDiagnostic>, String), AnyError> {
let mut source_code = String::new();
if stdin().read_to_string(&mut source_code).is_err() {
@@ -530,7 +530,9 @@ fn sort_diagnostics(diagnostics: &mut [LintDiagnostic]) {
});
}
-pub fn get_configured_rules(rules: LintRulesConfig) -> Vec<Arc<dyn LintRule>> {
+pub fn get_configured_rules(
+ rules: LintRulesConfig,
+) -> Vec<&'static dyn LintRule> {
if rules.tags.is_none() && rules.include.is_none() && rules.exclude.is_none()
{
rules::get_recommended_rules()