From 8507464d5a8977d9d866c66f308c0ff468977ca9 Mon Sep 17 00:00:00 2001 From: Cameron Date: Sat, 23 Nov 2024 15:20:19 +0000 Subject: [PATCH] fix(linter): hanging when source has syntax/is flow (#7432) Closes #7406 See https://github.com/oxc-project/oxc/issues/7406#issuecomment-2494981152 for why this is happening not sure whether there's a better solve for this/ --- apps/oxlint/src/lint.rs | 10 ++++++++++ crates/oxc_linter/src/service/runtime.rs | 5 ++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/apps/oxlint/src/lint.rs b/apps/oxlint/src/lint.rs index 3ad267009..faa2d501f 100644 --- a/apps/oxlint/src/lint.rs +++ b/apps/oxlint/src/lint.rs @@ -414,6 +414,16 @@ mod test { assert_eq!(result.number_of_errors, 0); } + #[test] + // https://github.com/oxc-project/oxc/issues/7406 + fn ignore_flow_import_plugin_directory() { + let args = &["--import-plugin", "-A all", "-D no-cycle", "fixtures/flow/"]; + let result = test(args); + assert_eq!(result.number_of_files, 2); + assert_eq!(result.number_of_warnings, 0); + assert_eq!(result.number_of_errors, 0); + } + #[test] fn filter_allow_all() { let args = &["-A", "all", "fixtures/linter"]; diff --git a/crates/oxc_linter/src/service/runtime.rs b/crates/oxc_linter/src/service/runtime.rs index 2e012b455..389a67c49 100644 --- a/crates/oxc_linter/src/service/runtime.rs +++ b/crates/oxc_linter/src/service/runtime.rs @@ -11,7 +11,7 @@ use oxc_allocator::Allocator; use oxc_diagnostics::{DiagnosticSender, DiagnosticService, Error, OxcDiagnostic}; use oxc_parser::{ParseOptions, Parser}; use oxc_resolver::Resolver; -use oxc_semantic::SemanticBuilder; +use oxc_semantic::{ModuleRecord, SemanticBuilder}; use oxc_span::{SourceType, VALID_EXTENSIONS}; use rayon::{iter::ParallelBridge, prelude::ParallelIterator}; use rustc_hash::FxHashSet; @@ -199,6 +199,9 @@ impl Runtime { .parse(); if !ret.errors.is_empty() { + if self.resolver.is_some() { + self.modules.add_resolved_module(path, Arc::new(ModuleRecord::default())); + } return if ret.is_flow_language { vec![] } else {