Skip to content

Commit 7a3293c

Browse files
committed
Return non zero in case of error
1 parent 4537360 commit 7a3293c

File tree

1 file changed

+13
-11
lines changed

1 file changed

+13
-11
lines changed

src/main.rs

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use std::fs;
22
use std::io;
33
use std::io::IsTerminal;
44
use std::path::Path;
5+
use std::process;
56

67
use arguments::Arguments;
78
use arguments::Command;
@@ -51,12 +52,12 @@ fn main() {
5152
"",
5253
Diagnostic::error(files_validation_result.err().unwrap().as_str()),
5354
);
54-
return;
55+
std::process::exit(1);
5556
}
5657

5758
if let Err(parse_modules_error) = parse_llvm_modules(&arguments.files) {
5859
reporter.report_diagnostic("", Diagnostic::error(parse_modules_error.as_str()));
59-
return;
60+
std::process::exit(1);
6061
}
6162

6263
let mut env = create_llql_environment();
@@ -74,12 +75,12 @@ fn main() {
7475
if let Err(validate_files_errors) = validate_files_paths(&arguments.files) {
7576
reporter
7677
.report_diagnostic(&query, Diagnostic::error(validate_files_errors.as_str()));
77-
return;
78+
std::process::exit(1);
7879
}
7980

8081
if let Err(parse_modules_error) = parse_llvm_modules(&arguments.files) {
8182
reporter.report_diagnostic("", Diagnostic::error(parse_modules_error.as_str()));
82-
return;
83+
std::process::exit(1);
8384
}
8485

8586
let mut env = create_llql_environment();
@@ -96,6 +97,7 @@ fn main() {
9697
}
9798
Command::Error(error_message) => {
9899
println!("{}", error_message);
100+
std::process::exit(1);
99101
}
100102
}
101103
}
@@ -105,12 +107,12 @@ fn launch_llql_repl(arguments: &Arguments) {
105107
let files = &arguments.files;
106108
if let Err(error) = validate_files_paths(files) {
107109
reporter.report_diagnostic("", Diagnostic::error(error.as_str()));
108-
return;
110+
std::process::exit(1);
109111
}
110112

111113
if let Err(parse_modules_error) = parse_llvm_modules(files) {
112114
reporter.report_diagnostic("", Diagnostic::error(parse_modules_error.as_str()));
113-
return;
115+
std::process::exit(1);
114116
}
115117

116118
let mut global_env = create_llql_environment();
@@ -203,19 +205,19 @@ fn execute_llql_query(
203205
if tokenizer_result.is_err() {
204206
let diagnostic = tokenizer_result.err().unwrap();
205207
reporter.report_diagnostic(&query, *diagnostic);
206-
return;
208+
std::process::exit(1);
207209
}
208210

209211
let tokens = tokenizer_result.ok().unwrap();
210212
if tokens.is_empty() {
211-
return;
213+
std::process::exit(1);
212214
}
213215

214216
let parser_result = parser::parse_gql(tokens, env);
215217
if parser_result.is_err() {
216218
let diagnostic = parser_result.err().unwrap();
217219
reporter.report_diagnostic(&query, *diagnostic);
218-
return;
220+
std::process::exit(1);
219221
}
220222

221223
let query_node = parser_result.ok().unwrap();
@@ -229,7 +231,7 @@ fn execute_llql_query(
229231
if evaluation_result.is_err() {
230232
let exception = Diagnostic::exception(&evaluation_result.err().unwrap());
231233
reporter.report_diagnostic(&query, exception);
232-
return;
234+
std::process::exit(1);
233235
}
234236

235237
// Render the result only if they are selected groups not any other statement
@@ -269,7 +271,7 @@ fn validate_files_paths(files: &[String]) -> Result<(), String> {
269271
}
270272

271273
if file.ends_with(".ll") || file.ends_with(".bc") {
272-
continue;
274+
std::process::exit(1);
273275
}
274276

275277
return Err(format!("File ${} must end with LL or BC extension", file));

0 commit comments

Comments
 (0)