mirror of
https://github.com/astral-sh/ruff.git
synced 2025-09-30 22:01:18 +00:00
Move collection of parse errors to check_file
(#13059)
This commit is contained in:
parent
b9c8113a8a
commit
1ca14e4335
2 changed files with 13 additions and 14 deletions
|
@ -7,7 +7,7 @@ use red_knot_python_semantic::types::Type;
|
||||||
use red_knot_python_semantic::{HasTy, ModuleName, SemanticModel};
|
use red_knot_python_semantic::{HasTy, ModuleName, SemanticModel};
|
||||||
use ruff_db::files::File;
|
use ruff_db::files::File;
|
||||||
use ruff_db::parsed::{parsed_module, ParsedModule};
|
use ruff_db::parsed::{parsed_module, ParsedModule};
|
||||||
use ruff_db::source::{line_index, source_text, SourceText};
|
use ruff_db::source::{source_text, SourceText};
|
||||||
use ruff_python_ast as ast;
|
use ruff_python_ast as ast;
|
||||||
use ruff_python_ast::visitor::{walk_expr, walk_stmt, Visitor};
|
use ruff_python_ast::visitor::{walk_expr, walk_stmt, Visitor};
|
||||||
use ruff_text_size::{Ranged, TextSize};
|
use ruff_text_size::{Ranged, TextSize};
|
||||||
|
@ -48,19 +48,6 @@ pub(crate) fn lint_syntax(db: &dyn Db, file_id: File) -> Vec<String> {
|
||||||
};
|
};
|
||||||
visitor.visit_body(&ast.body);
|
visitor.visit_body(&ast.body);
|
||||||
diagnostics = visitor.diagnostics;
|
diagnostics = visitor.diagnostics;
|
||||||
} else {
|
|
||||||
let path = file_id.path(db);
|
|
||||||
let line_index = line_index(db.upcast(), file_id);
|
|
||||||
diagnostics.extend(parsed.errors().iter().map(|err| {
|
|
||||||
let source_location = line_index.source_location(err.location.start(), source.as_str());
|
|
||||||
format!(
|
|
||||||
"{}:{}:{}: {}",
|
|
||||||
path.as_str(),
|
|
||||||
source_location.row,
|
|
||||||
source_location.column,
|
|
||||||
err,
|
|
||||||
)
|
|
||||||
}));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
diagnostics
|
diagnostics
|
||||||
|
|
|
@ -6,6 +6,7 @@ use salsa::{Durability, Setter as _};
|
||||||
pub use metadata::{PackageMetadata, WorkspaceMetadata};
|
pub use metadata::{PackageMetadata, WorkspaceMetadata};
|
||||||
use red_knot_python_semantic::types::check_types;
|
use red_knot_python_semantic::types::check_types;
|
||||||
use red_knot_python_semantic::SearchPathSettings;
|
use red_knot_python_semantic::SearchPathSettings;
|
||||||
|
use ruff_db::parsed::parsed_module;
|
||||||
use ruff_db::source::{line_index, source_text, SourceDiagnostic};
|
use ruff_db::source::{line_index, source_text, SourceDiagnostic};
|
||||||
use ruff_db::{
|
use ruff_db::{
|
||||||
files::{system_path_to_file, File},
|
files::{system_path_to_file, File},
|
||||||
|
@ -404,6 +405,17 @@ pub(super) fn check_file(db: &dyn Db, file: File) -> Vec<String> {
|
||||||
return diagnostics;
|
return diagnostics;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let parsed = parsed_module(db.upcast(), file);
|
||||||
|
|
||||||
|
if !parsed.errors().is_empty() {
|
||||||
|
let path = file.path(db);
|
||||||
|
let line_index = line_index(db.upcast(), file);
|
||||||
|
diagnostics.extend(parsed.errors().iter().map(|err| {
|
||||||
|
let source_location = line_index.source_location(err.location.start(), source.as_str());
|
||||||
|
format!("{path}:{source_location}: {message}", message = err.error)
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
for diagnostic in check_types(db.upcast(), file) {
|
for diagnostic in check_types(db.upcast(), file) {
|
||||||
let index = line_index(db.upcast(), diagnostic.file());
|
let index = line_index(db.upcast(), diagnostic.file());
|
||||||
let location = index.source_location(diagnostic.start(), source.as_str());
|
let location = index.source_location(diagnostic.start(), source.as_str());
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue