feat(xatu): reject files with parse errors
This commit was merged in pull request #72.
This commit is contained in:
@@ -10,6 +10,7 @@ pub trait ResultExt<T> {
|
|||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||||
pub enum Code {
|
pub enum Code {
|
||||||
InvalidArgument,
|
InvalidArgument,
|
||||||
|
FailedPrecondition,
|
||||||
NotFound,
|
NotFound,
|
||||||
PermissionDenied,
|
PermissionDenied,
|
||||||
Internal,
|
Internal,
|
||||||
@@ -39,6 +40,10 @@ impl Status {
|
|||||||
Self::new(Code::InvalidArgument, message)
|
Self::new(Code::InvalidArgument, message)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn failed_precondition(message: impl Into<String>) -> Self {
|
||||||
|
Self::new(Code::FailedPrecondition, message)
|
||||||
|
}
|
||||||
|
|
||||||
pub fn permission_denied(message: impl Into<String>) -> Self {
|
pub fn permission_denied(message: impl Into<String>) -> Self {
|
||||||
Self::new(Code::PermissionDenied, message)
|
Self::new(Code::PermissionDenied, message)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,13 @@ pub fn run(files: Vec<SourceFile>) -> status::Result<()> {
|
|||||||
let file = store.get(file_id);
|
let file = store.get(file_id);
|
||||||
let parsed = parser::parse_file(file_id, &file.source);
|
let parsed = parser::parse_file(file_id, &file.source);
|
||||||
|
|
||||||
|
if !parsed.errors.is_empty() {
|
||||||
|
return Err(status::Status::failed_precondition(format!(
|
||||||
|
"failed to parse {}",
|
||||||
|
file.path.display()
|
||||||
|
)));
|
||||||
|
}
|
||||||
|
|
||||||
for diagnostic in rules::run_rules(&parsed) {
|
for diagnostic in rules::run_rules(&parsed) {
|
||||||
println!(
|
println!(
|
||||||
"{}:{}..{}: {}: {}",
|
"{}:{}..{}: {}: {}",
|
||||||
|
|||||||
Reference in New Issue
Block a user